La función de Clonar parece correcta, la que ya no se si lo es es la que utilizas para asignar.
algo así, por ejemplo funciona:
Código Delphi
[-]
procedure TForm1.Button2Click(Sender: TObject);
var
f:TForm;
i:integer;
comp:TComponent;
begin
for i := 0 to (Screen.FormCount - 1) do begin
if (Screen.Forms[i].Name = Edit2.Text) then begin
comp := Screen.Forms[i].FindComponent('Edit1');
if Assigned(comp) then begin
if (comp is TEdit) then begin
TEdit(comp).Text := Edit3.Text;
end;
end;
end;
end;
end;