It's not obvious what's going on; I would expect a register to be set to 2 in 1080p and 4 in 720p.
Interesting that some registers got changed when recording MLV; I didn't expect any of them to change, maybe it's the extra hacks option?
FPS registers are in the "DIGIC registers" category in adtg_gui, so they won't change by overriding the above ones. You don't need to change them - they already work with crop mode hack.
Raw buffer size (as autodetected by ML) is also retrieved from two DIGIC registers (reply #86). Most registers cannot be read back directly, so they have a shadow copy that contains the last value written to that register. Well-behaved code sets both the register and its shadow copy, but there is some code that only sets the register. I wonder if the EOS M code overrides the resolution registers directly to 720p (so the change is invisible if we read the shadow copy).
This condition can be detected in QEMU, but only after being able to emulate the LiveView (or some part of it) on EOS M. Not very practical. Although, being able to log all the I/O register accesses would be extremely useful for emulation.
If you ever get bored (such as on a long train ride), you could try fiddling with those registers to figure out their meaning. There are lots of interesting things behind them (custom resolutions, extra highlight detail, binning patterns and so on).