Каждая из этих переменных имеет целочисленное значение. Но этот синтаксис по какой-то причине недопустим:
<xsl:when test="$nextAnswerListItemPos < $nextQuestionStemPos" >
Вы должны использовать < вместо < и > вместо >, потому что это зарезервированные символы.
<
<
>
>
Кроме того, в XSLT 2.0 вы можете использовать операторы "gt" (больше чем), "lt" (меньше) и "eq" (равно). Использование их вместо сущностей делает ваш код чище.