The error is not because you have two properties that begin with "Id". It is because both properties have the same name for the DataMember Attribute. Changing the attribute to what is below should fix your duplicate "ID" error.
[DataMember(Name="IDSpecified"]
[XmlAttribute("IDSpecified"),IsRequired=false]
public void IDSpecified{get; set;}