If you didn't have to deal with auto-scrolling but static levels instead, you could have searched for changing memory addresses corresponding to enemy positions and then find out the initial value of those, and finally freeze those addresses as soon as possible so the enemies are stuck where they would start.
With an auto-scrolling level, I have no idea how a game would handle coordinates if a level if very long, plus the fact that the constant spawning of enemies would mean that a certain number of memory values would probably be used for their positions and be constantly re-used as old enemies disappear and new one are generated. I'd go with Trop's suggestion with a tiny caveat: I like to align sprites to the game grid so in most cases, even if an enemy if slightly offset while all the others are not, I'll move it by a few pixels so that they're all neatly aligned on a 8 x 8 pixels grid. I'll admit that's a bit obsessive though