I’ve still not found anything. But I had an abstract thought that it was something to do with autosave getting in a mess. I turned it off using a plugin and we have not seen this problem re-occur.
My thought was that we were editing the post, changed the functions.php custom definition but auto save was still occurring and caused the data to re-write.
Might not be the cause, but turning it off has helped.