Обратный подход к проблеме: не записывайте словарь в XElement, но попытайтесь создать XElement из словаря. LINQ-to-XML делает это особенно легко.
var xml = new XElement("DictionaryContents",
myDict.Select(kvp => new XElement(kvp.Key, kvp.Value)));
return xml.ToString();