Как привести экземляр класса из List к своему первональному виду игнорируя других потомков базового класса цепочки?
typeof() или .GetType() на худой конец, чтобы не гадать.
Вообще похоже на кейс, где можно применить полиморфизм.
Добавьте какой-нибудь виртуальный метод в базовый класс и переопределяйте его в наследниках.
Например можно использовать ToString.
С другой стороны мне кажется, что тут вы зря применили наследование. Можно использовать интерфейсы для добавления SSN и прочего к классам. Тогда через StringBuilder можно будет собрать итоговую строку просто применяя такой код:
var sb = new StringBuilder();
if (person as IWithX withX) 
  sb.AppendLine(person.X);
if(person as IWithY withY)
  sb.AppendLine(person.Y);