Puedes usar Linq to XML para agrupar los nodos y tomar solo el primero.
Lo que si debes tener es un elemento que sea único como, por ejemplo, <root> en el xml para que pueda usarse.
Código C#:
Ver originalXElement devices = new XElement("root",
new XElement("device",
new XElement("ipaddress","192.168.0.12"),
new XElement("ipaddress","192.168.0.12")));
//Obtienes una lista de los devices sin ningún nodo repetido
var deviceGroup = (from d in devices.Elements("device")
group d by d.Element("ipaddress").Value into g
select new
{
device = g.First()
}).toList();
Un saludo y espero que te sirva