Вы можете переместить элементы, удалив их, а затем снова вставив их в нужную позицию:
var doc = XDocument.Parse(@"<tabs>...</tabs>");
var tab = doc.Root.Elements().ElementAt(1);
tab.Remove();
doc.Root.AddFirst(tab);
Кроме того, вы можете создать новый документ из существующих элементов в нужном порядке:
var doc = XDocument.Parse(@"<tabs>...</tabs>");
var tabs = doc.Root.Elements();
var result = new XDocument(
new XElement("tabs",
tabs.ElementAt(1),
tabs.ElementAt(0),
tabs.ElementAt(2)));
Я не проверял, но это может сработать:
void Swap(XElement a, XElement b)
{
var c = new XElement("dummy");
a.ReplaceWith(c);
b.ReplaceWith(a);
c.ReplaceWith(b);
}