I think your problem is the approach. You're trying to persist UI directly. Instead, you really need to make an intermediate data layer and persist only the data layer.
It looks as extra work but failure to do so will lead you to the dead end in future. By doing what you're doing right now you block your way to upgrade or replace your UI part. Remember, you need to isolate you UI from both the universal and application-specific part of functionality, but you're doing just the opposite.
Now, you don't need to create XML layer at all, as I explained in my solution using Data Contract in my recent answer:
Dynamic creation of elements in XML via C#.net[
^].
You need to develop data-to-UI (population) and (UI-to-data) methods which will glue things together.
Use the benefits of
loose coupling (
http://en.wikipedia.org/wiki/Loose_coupling[
^])!
—SA