Я думаю, что ваша проблема с этой строкой:
StringReader re = new StringReader(ele.InnerXml);
Измените ее на:
StringReader re = new StringReader(ele.OuterXml);
Причина в том, что свойство InnerXml будет возвращать все дочерние узлы, но неродительский узел.OuterXml также будет включать ваш родительский узел.
т.е. InnerXml не имеет корневого элемента (ну, у него их много!):
<id>ohKiUAZWz2</id>
<first-name>?????al</first-name>
<last-name>§|-|ä|-|»?«</last-name>
<headline>--</headline>
OuterXml соответствует ожидаемому:
<person>
<id>ohKiUAZWz2</id>
<first-name>?????al</first-name>
<last-name>§|-|ä|-|»?«</last-name>
<headline>--</headline>
</person>
Нет также реальной необходимости использовать используемый вами конструктор XmlSerializer.Попробуйте:
XmlSerializer mySerializer = new XmlSerializer(typeof(LinkWall));
Вместо.