So the solution I had to go with was creating classes within my classes:
public string NamePhoneModel : IValidationObject
{
[MetadataType(typeof(INameModel))]
public class NM : INameModel
{
public string FName {get;set;}
public string LName {get;set;}
}
[MetadataType(typeof(IPhoneModel))]
public class PM : IPhoneModel
{
public string Phone {get;set;}
}
public NM N { get; set; }
public PM P { get; set; }
public NamePhoneModel()
{
this.N = new NM();
this.P = new PM();
}
}