投稿者 葉月  (社会人) 投稿日時 2020/5/25 14:24:51
1.Dim f As New Form2を宣言し、f.ShowDialog()
2.Form2.ShowDialog()

上記二つの呼び出しは同じ結果になるように見えますが、実は違います。
(検証の目的が見えなかったので解決策だけ書いておきます)
想定した動きにするだけなら全フォームを2.に書き換えてください。
Form2からForm3を呼び出すなら――
Form3.ShowDialog()を使います。

それから同じようにForm4も追加してはどうでしょう。
変数2だけが0になる訳じゃないとわかります。