Spätestens seit Delphi
Unicode unterstützt, sollte man Strings nicht mehr zum Speichern von binären Daten verwenden. Vermutlich wird bei der Zuweisung so ziemlich alles kaputtkonvertiert. Also folge dem Rat, der hier schon mehrfach stand: Speichere direkt den Stream als Datei ab.
Wenn es unbedingt ein Puffer sein muss, dann wenigstens keinen String nehmen sondern ein Array of Byte oder TBytes.