Biggest effort is probably going to be in the event enrichment that may be carried out in PEM/filter paths. Anything custom is going to take time to convert.
1. PEM has Mainframe stuff, like screen emulators that BEM doesn't. BEM cannot screen scrape (as I understand it).
2. BEM events will eventually be deleted after being closed, you need to put something in place to keep them if this is a requirement (typically to external database).
3. You should consider having at least two cells on a busy system (even if on the same machine), one to handle enrichment, the other for display.
4. MRL is a somewhat limited language, so not everything you can do in REX/Perl can necessarily be done without an external call.
Ad 2). in BEM, closed events are deleted after the time interval specified in the cell's EventDBKeepClosed parameter (defaults to 2592000 secons = 30 days). Using the cells propagation mechanism and a product named "Impact Database Gateway", one can transfer all or particular events to an external database for further processing.
In PEM, closed events are transfered to the file-based PEM database. Its retention period determines how long events are stored therein (usually 14 days). There is no OOB Database Gateway mechanism here.