No se puede deserializar XML en una lista utilizando XML Deserializer

Esto se desprende de mi pregunta anteriorSerialice la lista de interfaces mediante la serialización XML

    public class MeterWalkOrder
    {
        public MeterWalkOrder()
        {
            Meters = new List<IMeter>();
        }

        public String Name { get; set; }

        [XmlIgnore]
        public List<IMeter> Meters { get; set; }

        [XmlArrayItem(ElementName = "Meter")]
        [XmlArray(ElementName = "Meters")]
        public List<Meter> SerializableMeters
        {
            get
            {
                return Meters.Cast<Meter>().ToList();
            }
            set
            {
                Meters = new List<IMeter>(value);                
            }
        }
    }

     public interface IMeter {
       int MeterID { get; set; }
     }

     public class Meter : IMeter {
         public int MeterID { get; set; }
         public string SerialNumber { get; set; }
     }
}

Estoy usando el método de extensión a continuación para deserializar el XML nuevamente en mi objeto (idealmente preferiría que el método de extensión esté fuera del objeto, pero no estoy muy cómodo con los métodos de extensión, así que me he ido así por ahora) ...

public static class SerializationExtensions
{

    public static T LoadFromXML<T>(this string xmlString)
    {
        T returnValue = default(T);

        XmlSerializer serial = new XmlSerializer(typeof(T));
        StringReader reader = new StringReader(xmlString);
        object result = serial.Deserialize(reader);

        if (result != null && result is T)
        {
            returnValue = ((T)result);
        }

        reader.Close();

        return returnValue;
    }

.... Sin embargo, cuando doy el XML a continuación ...

<?xml version="1.0"?>
<MeterWalkOrder xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>Red Route</Name>
  <Meters>
    <Meter>
      <MeterID>1</MeterID>
      <SerialNumber>12345</SerialNumber>
    </Meter>
    <Meter>
      <MeterID>2</MeterID>
      <SerialNumber>SE</SerialNumber>
    </Meter>
  </Meters>
</MeterWalkOrder>

¿No hay medidores poblados?

¿Alguien sabe qué podría causar este problema? El XML es válido y SerializeableMeters es simplemente una propiedad que lee y escribe en Meters, pero lo convierte en una clase concreta debido a los problemas conocidos con el uso de interfaces en la serialización

Respuestas a la pregunta(1)

Su respuesta a la pregunta