I’ll chip in a little here myself ;)
Look at it in this way:
As soon as this battle begins, the fighter scrambles and is in the sea zone along with all the other ships. You represent this in the game by putting all the pieces on the battle board. From this point on the fighter isn’t “on the carrier”.
Also, why is the carrier lost due to the surprise strike? You could take this on the Battleship instead. The surprise strike is like a series of rolls (subs roll surprise attack & defend) that happens before the other normal units, but only when their special power is not negated by an enemy destroyer of course, and so the defending Battleship could take the hit before the loss of the carrier (as long as it still has it’s 2 hit points).
It gets interesting in the subsequent combat waves. The surprise attacks still continue each and every ‘wave’ (attack roll, defend roll) and so that sub could cause a big loss for the defender, if the Battleship is damaged and the sea group is positioned away from a landing zone for the fighter. Lose the carrier, meaning the plane is lost regardless of the outcome, or lose the Battleship and the roll of 4, to have a chance at keeping the carrier (and hopefully the fighter to put back on it!). I love this mechanic in the game, subs are cheap and are hopeless on defense but a well placed torpedo can decimate a naval group.
As for the fighter, it still rolls on defence as it always would. It just cannot hit a submarine unless there is a friendly destroyer present. It can roll defensive rolls to hit the attacking surface ships, and at the end of the battle it has a movement of 1 (Can land in the sea on the carrier, or move 1 to a friendly territory to land.)