Nick, while I’ve had a few problems over the years – mostly from sync issues – I’ve managed to work around them without the data-loss paranoia you describe above. No, I’m not calling you paranoid, not in the least as I too have lost sleep over lost work. That said, I’ve seen in my own files something like the behavior similar to what you have described.
Mind you, this was several versions back, but the proposed solution worked for me then.
As to why this is happening I don’t have a definitive answer, but I may have a little insight to share. Another issue I have had with a different project resulted in repair activity that ended up being something I referred to then as “meatball surgery”. I dug into the XML hive to peek around and find out.
I feel I must renew my cautions posted in that post. While I expect @nickjbedford is perfectly capable of handling this information and skilled enough to use it, another party reading this might cause serious harm to their project…
Incidentally, if you don’t have access to a programming IDE that offers a difference engine, Text Compare! is a useful free option. I should also note that TextWrangler is a depreciated MacOS text editor that was acquired by BBEdit who still offers a similar functionality in a free edition.
I never found exactly what caused my issue to start, though I expect it was related to stowaway formatting from a copy and paste operation. I merely found my missing binder headings and orphaned text, and recovered it. Between the two linked posts above and your description, it does seem like something is munching on the XML Hive in a fashion that isn’t being patched over with the merging/recovery code. At this point, I’d suggest having a peek inside copies of the SCRIVX and MOB files(both to be found inside the SCRIV file), you might not find anything but it won’t hurt if you don’t save any edits.