Private Sub frmMain_FormClosed(sender As Object, e As FormClosedEventArgs) Handles Me.FormClosed
Application.Exit()
End Sub
Eso está mal, debes usar el evento
FormClosing, cuando el form se ha cerrado del todo ya no ocurre náh.
Aunque meter un "application.exit" en un "formclosing" tampoco sirve para nada, es decir, no estarías agregando ninguna inastrucción nueva al sub, en lugar de eso y si prefieres usa "End" (pero lee para que sirve).
El error, como yo supuse (código conflictivo), lo tienes aquí:
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
PictureBox1.Image = Image.FromFile(".\Art\rojo1.png")
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
frmMinecraft.Show()
Me.Hide()
End Sub
Al pulsar el botón rojo inicias un timer que a los 50 ms oculta el form principal, cuando le das al botón "patrás" para mostrar de nuevo el form principal, ese timer sigue en marcha.
¿Como solucionarlo?, no te lo iba a decir, pero es que no sé pa que coño tienes un timer para mostrar un Form XDDD.
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
PictureBox1.Image = Image.FromFile(".\Art\rojo1.png")
frmMinecraft.Show()
End Sub
' Esto lo eliminas,
' Y el timer del Designer lo eliminas si solo le das este uso.
'
'Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'frmMinecraft.Show()
'Me.Hide()
' End Sub
Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
frmMain.Show()
Me.Dispose()
End Sub
PD: Si ese mismo problema estuviese en un form secundario, al liberarlo con un .Dispose se arreglaría, sigue usando .Dispose como te dije (y solo en forms secundarios) para evitar futuros problemas, eso no lo cambies.
PD2: Lo que no tenias nombrado eran los subs (algunos), tienes razón, no lo miré bien xD.
Saludos!