La sintassi My.Windows.Form1 è stata aggiunta da Microsoft per facilitare la conversione dei progetti VB6 in VB.NET. Purtroppo si tratta di qualcosa che fa a botte con i principi della programmazione ad oggetti, che sconsiglio vivamente di usare in quanto prima o poi tale sintassi verrà definitivamente abbandonata.
Detto questo, il modo di passare valori tra un form e l'altro è sempre il medesimo sia se si parla di WinForm che di WPF.
Nel Form1:
codice:
'nelle dichiarazioni:
Public Property MioOggetto() As MiaClasse
'in un metodo o evento:
Dim f As New Form2
f.Owner = Me
f.ShowDialog()
Nel Form2:
codice:
'faccio il cast di Me.Owner sul tipo Form1
Dim f As Form1 = CType(Me.Owner, Form1)
'utilizzo i dati dichiarati nel form1...
Dim obj As MiaClasse = f.MioOggetto