Это действительно просто:)
doc.Descendants("Section")
.Where(x => (string) x.Attribute("name") == "xyz")
.Remove();
Должен любить LINQ to XML ...
РЕДАКТИРОВАТЬ: я только что попробовал это с вашим примером XML, и это было результатом потом:
<Root>
<Section name="abc">
<Section name="def" />
</Section>
<Section name="abc">
<Section name="def">
<Section name="abc" />
</Section>
</Section>
</Root>
Пожалуйста, дайте мне знать, если это не то, что вы ожидали.