Похоже, ошибка при обработке корневого имени. В качестве обходного пути: возьмите рут под контроль вручную:
[XmlRoot("foo")]
public class MyRoot {
[XmlElement("bar")]
public List<RemoteHost> Hosts {get;set;}
}
Это должно сериализоваться как
<foo><bar>...</bar>...</foo>
на любой платформе. Замените foo
и bar
на ваши предпочтительные имена.
(лично я бы использовал двоичный вывод, хотя; p)