Ваша проблема в том, что вам нужно четко указать пространство имен в XPath.Он не будет просто использовать документ по умолчанию для документа, вам нужно назвать его.
Если вы измените последние две строки на что-то вроде этого, он будет работать (я выбрал префикс xmlns «default»):
nsManager.AddNamespace("default", nms.NamespaceName);
List<XElement> csFiles = new List<XElement>(doc.Root.XPathSelectElements("//default:Compile", nsManager));
Другой вариант - использовать вместо этого методы XContainer.Таким образом, вам не нужно беспокоиться об использовании менеджера пространства имен:
XNamespace nms = doc.Root.GetDefaultNamespace();
List<XElement> csFiles = new List<XElement>(doc.Root.Descendants(nms + "Compile"));