You can't remove items from a collection when you are iterating the collection. Instead, make a list of the items references, then iterate from the new list and remove them.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click
Debug.WriteLine("Before: " & Me.cnvRoot.Children.Count)
Dim objRemoveList As New List(Of Rectangle)
For Each objRectangle As Rectangle In From r In Me.cnvRoot.Children Where TypeOf r Is Rectangle Select CType(r, Rectangle)
objRemoveList.Add(objRectangle)
Next
For Each objRectangle In objRemoveList
Me.cnvRoot.Children.Remove(objRectangle)
Next
objRemoveList.Clear()
objRemoveList = Nothing
Debug.WriteLine("After: " & Me.cnvRoot.Children.Count)
End Sub