Wieso erstellst du den Frame eigentlich zur Laufzeit?

Ansonsten:

frm_lieg_open.open_lgs.Create(self);

wird freigegeben aber

frm_lieg_open

wird nicht wieder freigegeben. Vielleicht liegts daran.