Si te fijas la documentación del método RemoveAll, ahí no dice en ningún lado que borra el nodo actual...
En todo caso, cambia:
Código:
If (nnombre.Equals(nombre)) Then
nlista.Item(i).RemoveAll()
End If
por:
Código:
If (nnombre.Equals(nombre)) Then
nodo.ParentNode.RemoveChild(nodo)
End If
Saludos
PS. Sería más fácil si usas xpath para hacer la búsqueda...