Ah, a little bit like Arcadia Remix?
First of all, coding difficulty is all about how familiar someone is with a codebase and relevant techniques, so only someone who actually has to do it could say how easy it is. For instance, I haven’t touched any emulator code in a while, so even if I did recall the architecture of the program, I’d have to do a lot of snooping around to remember exactly how things are done.
As far as specific challenges go, it would probably depend on the program. You can easily expect there to be a lot of coupling (overreliance on interconnected program parts) and global state (only expecting one of a particular thing to exist and monopolizing it, which makes it hard to create another instance) in these programs, and those are will take quite a bit of time “fixing”. You probably wouldn’t have trouble with doubling the emulated systems’ memory, for instance, but ensuring that the graphics and input are hooked up correctly will take quite a bit of effort.
Depending on how accurate you want the emulation to be, using separate processes/windows and hijacking various I/O things would probably be faster to do in a jiffy, particularly if you have a machine dedicated to it. (It should not pose too much difficulty to sync up the framerates this way if you’re careful.)
P.S. (seeing the second post) for it to make games dual-language you would have to guarantee a lot of things you simply can’t guarantee programmatically (e.g. no difference in random number generation so you don’t have NPCs going off in different directions and battles ending at different times, no difference in script timing or length, etc.). A lot depends on the game in question, but for the majority of JRPGs, simple solutions would go straight out the window!