Делаешь класс Person{string Name, string FirstSurname, string SecondSurname, List parents, List wifes\husbunds, List children}.
Имя, фамилия до свадьбы, фамилия после (кстати, свадеб может быть много, можно лист фамилий сделать), список родителей (дети могут жить в приюте, с приемными, с гомосексуалистами, а могут быть зачаты мидихлорианами), список жен\мужей, список детей. Все.
При добавлении человеку А ребенка В проверяешь, есть у В персона А в списке родителей. Если нет - добавляешь. При добавлении человеку А супруги В проверяешь, есть ли у В персона А в списке мужей\жен. Если нет - добавляешь. И т.д. для каждой связи (в обе стороны).