Benutzt Du .Write oder .WriteBuffer?
Falls ersteres: Prüfst Du auch den Rückgabewert, ob der komplette Buffer geschrieben wurde? Wenn nein, dürfte das das erste Problem sein.
Wir benutzen TFileStream in sehr großem Umfang und das auch noch multithreaded. Da geht normalerweise nichts verloren.
Aber wenn man nicht prüft, ob auch alles geschrieben wurde.