I need to dive in deeper, but I'm guessing we are casting the data to a dictionary at some point and then going back to a string. Since dicts are unordered there is a possibility the string will not align when we check the current value with self._orig
UPDATE: This appears to only be an issue on the first save()