Hallo,
TStringList hat ein LoadFromStream und ein SaveToStream, damit müsstest Du die
CSV eigentlich auch direkt als Stringliste aus deinem Stream übernehmen und verarbeiten können. Dann benötigst Du keine Zwischenspeicherung via Datei, sondern "nur noch" ein LoadFromStream und ein SaveToStream.
So wie ich es Deinem Quelltext entnehme, sollte das ein gangbarer Weg sein, der mit relativ wenig Änderungen umzusetzen ist, Deinen Funktionen könntest Du den Stream als zusätzlichen Parameter übergeben.