wenn ich dieselben Daten in ein Stream packe und auf der Festplatte abspeichere, sind da nur wenige Kilobyte zu finden
Das liegt daran, dass die Strings nur als "pointer sized" (unter 32 Bit 4-Byte) Referenzen im Stream gespeichert werden, wenn du das komplette Objekt da reinschreibst.