se que he tardado en responder, pero he estado fuera.
al final lo he solucionado con algo así:
Código:
XPathNavigator nav = node.CreateNavigator();
XPathNodeIterator nodesIt = nav.SelectChildren(XPathNodeType.Element);
while (nodesIt.MoveNext())
{
IHasXmlNode nodes = nodesIt.Current as IHasXmlNode;
tratar(nodes.GetNode());
}