Инструкции XSLT создают узлы в дереве результатов, а не лексические теги начала и конца. Вывод узла является одной операцией, вы не можете разделить его на две операции, записывая по половине узла каждая. Таким образом, ваше мышление должно быть «для каждых пяти узлов на входе я хочу создать узел на выходе», что естественно приводит к такой конструкции, как
<xsl:for-each select="*[position() mod 5 = 1]">
Не соблазняйтесь использованием для этого отключения-вывода-экранирования. Это яд. Это нарушает четкую архитектурную границу между механизмом преобразования и сериализованным, что означает, что ваша таблица стилей не может быть аккуратно развернута и повторно использована в произвольном конвейере (по этой причине она не будет работать в Firefox, если вам интересно в практических последствиях).