Da fehlt das ungefähr 😉
Nach dem Schließen des form sollte dieses freigegeben werden und vor dem Erzeugen besser noch Prüfen ob bereits vorhanden.
zu 1: Self.Free; angefügt nach Close;
zu 2: doppelt gemoppelt:
procedure TApplication.CreateForm(InstanceClass: TComponentClass; var Reference); prüft das selbst.