Guarda, per iterare un file XML secondo me è meglio usare strumenti diversi, es. XMLDocument, XMLElement, XMLNode.

Già solo con un XMLDocument puoi scavare e cercare, prova in debug:

codice:
XmlDocument xDoc = new XmlDocument();
xDoc.Load(Percorso);
Conta inoltre che i tuoi nodi figlio hanno il loro contenuto nell'innerText, non è Value.

Gli attributi hanno il Value, es.

<figlio1>testo</figlio1>

Può benissimo diventare

<figlio numero="1">testo</figlio>

In questo modo il nodo avrà l'attributo "numero" con value "1" e l'innerText "testo".

Altro appunto, quando lavori con stringhe e oggetti non usare == o != per il confronto, usa Equals(), è meglio.

reader.Name == "nodo_padre" -> reader.Name.Equals("nodo_padre")
reader.Name != "nodo_padre" -> !reader.Name.Equals("nodo_padre")