Let's see if I have this straight....
To run megaman, you have to use a custom memory mapping (not the standard layout) to mimic the memory on the nes. Because of this, you have to save/restore several system settings when you switch between modes for the game (ie, to use bios you essentially have to re-map the system, and put it back when you are done). Not only that, but (iirc) the basic ram stuff is different; the stack is in a different place, so if you use the pce irq vectors, it will push/pull from a different area in memory, essentially corrupting the NES variables....
kk. From what I remember (and it's been a while, so you would have to double-check the source code), the player itself is page agnostic - it doesn't care where it runs from, so long as it always runs in the same address range. I believe you could re-assemble the player in a different page/bank and it would still work.
You would, however, also have to move the variables it uses. I believe the player code actually accesses them by name, so you would just have to make sure they get assembled somewhere 'out of the way' of the NES variables. There is quite a chunk used, so it might be a bit difficult to set that up...
The other problem I see is getting the player actually called. The pce irqs map the player in and out, so you would have to make sure your modified version got called correctly. I don't think that would be a big problem, if the irq handler does it correctly.
It's going to be interesting to see how easy/hard this turns out to be, assuming you decide to try it.