Я думаю, что вы могли бы обойти это, используя универсальный список (List <>) вместо ArrayList, однако я собираюсь предположить, что вы не можете использовать универсальные по той или иной причине.
Вы должны сообщить компилятору, какой тип содержится в ArrayList, чтобы он мог его сериализовать, поскольку все, что он знает, что он содержит объекты.
Добавьте это над своей собственностью, и оно должно очиститься.
[System.Xml.Serialization.XmlInclude (TypeOf (XMLSerialization.DataPoints))]
Конечно, замените XMLSerialization.DataPoints тем классом, который содержится в ArrayList.