If I want to work with XML, I usually design a class/bunch of classes that represent the data I need. Then I use XmlSerializer to read in the XML and write it out again.
This gives me strongly typed classes to work with whilst the XML is “in memory”.
I can of course use Linq on these classes without any issue.
Should I be using Linq to XML, and if so – why?
To me, in my circumstances, it seems to server only to remove the strong typing!
I’d stick with the approach you have taken if I were you. There’s very rarely a need to reimplement a well understood wheel, and you understand what you are trying to do with the serialization. More importantly, you know the issues surrounding them, so you can take care to implement workrounds – changing to L2XML would introduce a risk that is plain unnecessary.