Most likely cause of differing behavior across emulators is a timing issue -- as most other aspects of emulation are relatively trivial and should be pretty uniform.
Did your hack do any asm changes or anything that would cause a routine to run longer than necessary? It might be as simple as just having longer strings and thereby increasing the time spent in the routine that prints them.
A first-step diagnostic might be to just shrink the text that is printed in the part of the game exhibiting glitches to see if the problem goes away.
Just spitballing here but maybe it's an emulator-specific error due to poor support for the Japan-only Irem mapper that Holy Diver runs on?https://sourceforge.net/p/fceultra/bugs/809/
It appears that the Irem mapper 78 also has submappers that may not be properly differentiated in some emulators, leading to incorrect behavior. NES 2.0 was invented to add this level of differentiation in the metadata that iNES 1.0 lacks, as we all know
OP, have you tried applying the MMC1 patch ( to your translation and trying that on the emulators giving you problems? That would be a good way of ruling out it being anything other than the mapper, I feel like
Sorry if stating the obvious, you're both a hell of a lot more qualified than me so it probably crossed your minds