Moin Skript,
if not Assigned(TEgal(MeineInstanz)) then Exit
muss ja fehlschlagen, da Du ja nur den Pointer MeinObjekt mit FreeAndNil auf nil setzt.
Warum machst Du nicht einfach
if Assigned(MeinObjekt) then ...
und lässt die ganze Aktion mit dem untypisierten Pointer weg?
Wozu soll der überhaupt gut sein?