Diffs Do Not Update Length
The AAO diff system lacks a mechanism to update the size of a diff array, if the array has been edited. Here is a simple example of when this cause problems:
Create a two frame trial, and on frame one, hide frame one. Go to frame two and save. Create a third frame and load your save. The game will not be able to progress to frame three.
The cause is that when patching the frames array, the diff's length is set to 2, and the patched array will have as many frames as the diff's length says. Any attempt to fix this bug should very carefully consider the implications of the fix for the save system, to avoid creating any ugliness in the future. If no nice solution can be found, letting this bug be may be necessary, as players are already warned that loading outdated saves can create inconsistencies.