Hast du vielleicht mehrere Instanzen der Klasse TfrmProgress offen so das es dir so vorkommt das frmProgress nicht schließt aber es tatsächlich eine andere Instanz ist?
Vielleicht hast du ja sinngemäß sowas:
Delphi-Quellcode:
frmProgress := TfrmProgress.Create();
frmProgress := TfrmProgress.Create();
frmProgress.Close;
dann würdest du ja auch nur eines der erzeugten Fenster schließen. Oder erzeugst du das Fenster manuell und es ist zusätzlich noch in der Liste der zu automatisch erstellenden drin?