DLLへ引数としてTFormやTMainMenuのインスタンスを
そのまま渡しても大丈夫でしょうか?
例えば、呼び出し側のFormのインスタンスをもらい、
Captionを変更する以下の処理は問題ありでしょうか?

// 呼び出し側
procedure TForm1.Hoge;
begin
(略)
ChangeCaption(Self);
end;

// DLL側
procedure ChangeCapton(Form: TForm);
begin
Form.Caption:= 'Hoge';
end;