This happens to me from time to time, usually when I reconnect monitors or the video driver resets. I have to put everything back where it belongs by hand, or restart - otherwise old snapshots don't restore. This time I decided to save a profile after I put everything back in its place and diff the files.
Sure enough, the old snapshot positions everything on \\.\DISPLAY1 and \\.\DISPLAY2, while the new snapshot uses \\.\DISPLAY6 and \\.\DISPLAY7 (I only have two).
This explains why Fences refuses to restore the old snapshot. It doesn't really refuse, it does restore - but it puts everything on the primary display. It could definitely be a lot smarter about this. Instead of relying on Windows display numbering, it could be identifying them by resolution or device names or something else that stays constant.
I suppose one could blame this on Windows being stupid and renumbering the monitors - but the whole purpose of Fences is to help keep the icons where they belong even when Windows is being stupid. I'd love to see this scenario improved in Fences.