Ich versuchs mal mit meinen bescheidenen Wissensstand:
Es sind zwei verschiedene Speichermanager!
Einer in der Anwendung, einer in der
DLL.
Die Strings (AppVersion, Model...) unterliegen den Speichermanager der
DLL.
Wenn die
DLL entladen wird, werden auch alle referenzgezählten Typen darin freigeben, also die Strings!
Ergebnis: Du hast im MasterVersion-Objekt in deiner Anwendung zwar noch gültige Adressen auf irgendwelche Speicherbereiche, aber da steht jetzt was anderes bzw. Müll drin.