Como vincular uma estrutura de classe XML específica e desserializada ao Treeview

Quero criar um aplicativo que desserialize os dados do meu arquivo xml para a estrutura da classe. Eu preparei aulas usando a ferramenta 'Colar XML como classes', no entanto, tudo é feito em campos ou tabelas comuns e quando tentei alterá-lo para o serializador List ou ObservableCollections parou de carregar o documento xml corretamente.

O que eu quero fazer a seguir é a possibilidade de escolher entre treeview, por exemplo, algum elemento, editá-lo e salvar no arquivo xml novamente. Não quero fazer isso diretamente no .xml. Esta é uma amostra do meu XML:

    <plan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd">
<nagłówek>
<autorzy>
<nazwa>Autorzy:</nazwa>
<autor atr="one">
<numer>222</numer>
<imię>Rust</imię>
<nazwisko>Snow</nazwisko>
</autor>

<autor>
<numer>111</numer>
<imię>Ian</imię>
<nazwisko>Nower</nazwisko>
</autor>
</autorzy>
</nagłówek>
...

Aqui estão exemplos de classes

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class plan
{

    private planNagłówek nagłówekField;

    private planGłówny głównyField;

    /// <remarks/>
    public planNagłówek nagłówek
    {
        get
        {
            return this.nagłówekField;
        }
        set
        {
            this.nagłówekField = value;
        }
    }

    /// <remarks/>
    public planGłówny główny
    {
        get
        {
            return this.głównyField;
        }
        set
        {
            this.głównyField = value;
        }
    }
}

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
public partial class planNagłówek 
{

    private planNagłówekAutorzy autorzyField;

    /// <remarks/>
    public planNagłówekAutorzy autorzy
    {
        get
        {
            return this.autorzyField;
        }
        set
        {
            this.autorzyField = value;
        }
    }
}

e como eu carrego xml:

// Create an instance of the XmlSerializer specifying type and namespace.
            XmlSerializer serializer = new XmlSerializer(typeof(XML.plan));
            // A FileStream is needed to read the XML document.
            FileStream fs = new FileStream("...somepath.../Untitled4.xml", FileMode.Open);
            XmlReader reader = XmlReader.Create(fs);

            // Use the Deserialize method to restore the object's state.
            i = (XML.plan)serializer.Deserialize(reader);
            fs.Close();    

Aqui está o que eu tenho mais meu arquivo xml, talvez isso ajude você a me ajudar :)https://drive.google.com/file/d/0B0wPodV30rnJSVA1ckVxWldDRDA/view