Trotzdem ist der Debugger sehr hilfreich
Erspart dir die ShowMessage Arie und ähnliches.
Mittlerweile hab ich aber eventuell etwas gefunden. Ich denke du darfst CompressOut nicht freigeben. Dieses TStreamProgressAdapter ist ja nur ein Adapter. Er erzeugt bestimmt keinen neuen Stream sondern nutzt den, den du bei Create übergeben hast. Von daher ist das FreeAndNil(CompressOut) sehr fatal. Den darfst du erst freigeben, wenn du auch FileToAdd freigibts.
P.S: Überall verwendest du FreeAndNil, nur bei CompressionStream nicht