なのでこれも動作的にはまったく問題ない。(フォーム名と変数名がともにfrmChildの場合)

'子にパラメータを渡して開くとき
'-----------------
frmChild.xxx = "親からのパラメータ" 'ロードされない(frmChild_Loadは発生しない)
frmChild.Show vbModal 'ロードされる
'-----------------

'子が閉じられたときに結果を受け取るとき
'-----------------
msgbox frmChild.xxx = "子の処理結果"
UnLoad frmChild
'-----------------

まあ、UnLoad と対照的にするために Load を書くのもいいと思うけど。
ちなみに UnLoad frmChild 実行後も frmChild.xxx は生きている。
こうすると同じ値が表示される。

msgbox frmChild.xxx = "子の処理結果"
UnLoad frmChild
msgbox frmChild.xxx = "子の処理結果"

frmChild を完全に初期化(メモリから完全に消去)するには UnLoad frmChild の後に
Set frmChild = Nothing が必要
ただし、これをやっても他が frmChild を参照していると初期化されない。
どこからも参照されなくなったときに frmChild が完全に初期化される。

さあ、ややこしくなってきましたw
まあクラスとインスタンスの生成(メモリ上への作成)とロード(ウインドウの初期化)の
違いとそれが暗黙に行われる/行われない条件に気をつけようと。