То, что вы описали здесь, является проблемой группировки. Стандартным способом обработки группировки в xslt 1 является метод "Muenchian". Здесь есть очень подробное объяснение:
http://www.jenitennison.com/xslt/grouping/muenchian.html
Основная идея заключается в том, что вы создаете ключ, который указывает, что вы хотите сгруппировать по. В этом случае вы создадите ключ, соответствующий узлу человека, используя первую букву его имени.
Затем вы пишете цикл, который проходит по людям и проверяет, является ли каждый из них первым, который соответствует данному ключу (первая буква). Если это так, то вы вставляете один из своих группирующих разделителей.
Тогда у вас есть вложенный цикл (или apply-templates), у которого есть правило соответствия, которое выбирает только узлы с этой первой буквой. Вы можете отсортировать их, используя xslt: sort, и вывести их.
Если вы можете опубликовать образец вашего фактического XML (а не только желаемый вывод), то я могу написать вам пример таблицы стилей для его анализа.