I might be wrong but to me you seem to be asking how to find a node which equals SelectedItem and add a new node to it. Why dont you just use SelectedItem.Add instead??? It would sort of save you the searching by reference equals.
For counting the children just use the Linq Count() method :)