Попробуйте сделать что-то вроде этого:
IEnumerable.OrderBy(x => strig.Fromat("{0}{1}", x.Person.LastName, x.Person.FirstName);
или (если вы используете более новую версию C #, где поддерживается $
):
IEnumerable.OrderBy(x => $"{x.Person.LastName}{x.Person.FirstName}");
Это должно отсортировать ваши элементыпринимая во внимание как фамилию, так и имя (и на пути к повышению производительности за счет итерации по списку всего один раз).
Надеюсь, это поможет!