The answer was to remove the abstract keyword from the Base class (Person):
FROM:
public abstract class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Training Training { get; set; }
}
TO:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Training Training { get; set; }
}