The problem is that you may be able to assign an Employee to a Person instance, but you can't also assign a Person to Employee instance. Therefore, your setter would break. You either need to get rid of the setter, or use a private backing instance and some casting (which I wouldn't recommend) which would look like:
public class TestClass : MyBase
{
private Employee _employee;
public Person Someone
{
get
{
return _employee;
}
set
{
if(!(value is Employee)) throw new ArgumentException();
_employee = value as Employee;
}
}