Yo uso frames de un modo diferente.
Tengo varios que incrusto donde necesito, a veces de forma concurrente, lo que me daba problemas de instancias cuya solución fue bastante tonta.
La variable para usar el frame la defino en el formulario que lo usa, dentro de la sección private.
Tengo un procedimiento que crea el frame usando la variable que necesito y con las características necesarias (diferencias visuales y de comportamiento).
Código Delphi
[-]U_MiFrame
...
Type
tfrm_MiFrame = Class(TFame)
...
end;
var
U_OtraCosa
Type
tf_OtraCosa = Class()
...
private
frm_MiFrame_OtraCosa1: tfrm_MiFrame; procedure cargaFrameParametrizado(esteFrame: tfrm_MiFrame; parametros: record);
end;