早速他の掲示板に回答が書かれました。
『Control.Controls プロパティは、自分の直接の子供となるコントロールしか格納していません。』
と言うことだそうです。そこで
Private Function PicBox(ByVal index As Integer) As PictureBox
Return DirectCast(Me.GroupBox1.Controls("PicBox" & index.ToString), PictureBox)
End Function
とコードを書き換えたら正常に動作しました。
私もまだ未熟です。