The save and restore functions at first glance look to be in sync. TonyD could possibly be onto something by suggesting a limit may have been breached. That limit could be number of HarpoonEvents the code can cycle through when saving and loading saved games. While the list of HarpoonEvents can be as long as memory permits (hundreds of millions very conservatively), the saving and loading of saved games had a limitation of 32,768 (a signed short integer). I was able to double that without breaking anything. That will be a part of 2022.015. Anyway, from 'Unit ID Test 1-41.001.hpq', here are the LaunchAirEvents with patrols that have a non-matching group (both the base HarpoonEvent and the patrolling associated HarpoonEvent have an associated group). I don't know what significance there is that they are four in a row from 5617 to 5620. There are over 22,000 HarpoonEvents in the saved game and it just happens that four in a row are affected, hmm.
100289 Loadgame.c:383 - attaching AirPatrolEvent for Group=ZWC UnitId=143 patrolling_idx=5620 to Group ZVC
100289 Loadgame.c:383 - attaching AirPatrolEvent for Group=ZWC UnitId=142 patrolling_idx=5619 to Group ZGC
100289 Loadgame.c:379 - attaching AirPatrolEvent for Group=ACb UnitId=21 patrolling_idx=5618 to Group ZGC
100289 Loadgame.c:383 - attaching AirPatrolEvent for Group=ZVC UnitId=179 patrolling_idx=5617 to Group ZGC