Can't speak for the OP obviously, but by prior layout, what I mean is the layout that I had just prior to hitting the restore button, as in the layout I want to get rid of. The layout is neither the default nor one that I had saved. See below...
I can open the .xml files associated with the snapshots and see all the string data. They don't seem corrupt to me.
After tinkering with this some more, I believe I understand what's happening, in my case anyway. The problem is that snapshots won't restore to monitor configurations that are dissimilar to the configuration that was present when the snapshot was taken. In my case, I had two monitors connected when the snapshot was taken, but I only have one connected now—for reasons that are irrelevant. Once I connected a second "test" monitor, the snapshot restored as expected.
Therein lies a different problem, though. When I disconnect the second monitor, which was only there for testing purposes, the layout changes to something weird all by itself, even though there were no fences or icons present on the second monitor, either just prior to disconnecting it OR when the snapshot was taken. With only one monitor connected, I've lost the arrangement of fences and icons I had before because Fences freaks out and messes up the layout (for reasons unknown) when the second monitor gets disconnected. And the only way to get that arrangement back is to reconnect the second monitor and leave it there—permanently. Obviously, that's not I want or what I intended.
The real problem, it seems, is that Fences does not adapt to (or cope with) changes in the number of monitors connected very well at all. And when you try to get the layout that you had before back, you can't because snapshots appear to be inextricably linked to, and reliant upon, the number of monitors that were connected and visible when the snapshot was taken.
Maybe you could modify the behavior of snapshots so that they save and restore on a selectable, per-monitor basis? The current implementation of snapshots does not appear to behave very well at all in situations like this. Right now, disconnecting (and perhaps adding?) a monitor breaks your saved arrangement of fences and icons, and there's no way to get it back except by manually rearranging the entire desktop as close as you can to the way it was before.
Alternatively, if there's a way to excise the second monitor directly out of the .xml, I'm all ears...