Обычно вы можете использовать
[XmlInclude(typeof(ChildType))]
в своем базовом классе, а затем можете десериализовать несколько типов в одном списке в базовый тип.Я полагаю, что для этого требуется наличие атрибута
type="music"
вместо использования различных корневых элементов.
Возможно, вам придется реализовать ISerializable, чтобы получить то, что вам нужно.