I was able to isolate your problem to the various "ShipName Destroyed" events. FS2 apparently does
NOT like the combination of "is-destroyed-delay" with "is-iff". (might be because it is kind of hard to check the IFF of a ship that no longer exists, lol)
By replacing the "is-iff" part of the events with its corresponding "is-event-true", your mission works and your intended logic remains the same. The event name to use for the "is-event-true" part is the name of the event where you change that ship's IFF to hostile ( i.e. if the event is true that changed the ship's IFF, then you know the iffis hostile

). VOILA

Example fix:
( and
( is-destroyed-delay 0 "ELS-078" )
( is-iff "Hostile" "ELS-078" )
)
BECOMES
( and
( is-destroyed-delay 0 "ELS-078" )
( is-event-true-delay
"GTT-ELS-078 Scanned"
0
)
Merry Christmas!* EE fades back into the ether *