Это определенно похоже на ошибку в процессоре XSLT. Это может или не может быть из-за размера вашего кода XSLT. Вы можете попробовать разбить ваш код XSLT на более мелкие блоки (шаблоны), чтобы посмотреть, решит ли это проблему. Или вы можете посмотреть, есть ли способ отключить генерацию байтового кода XSLTC, где происходит сбой (Xalan имеет как интерпретируемый, так и скомпилированный режимы выполнения).
Вы также можете, конечно, переключиться на Saxon - на платформе Java действительно нет причин использовать версию XSLT, которой уже почти 20 лет, и даже при достаточно простых требованиях вы получите значительные преимущества в производительности благодаря новой функции в XSLT 2.0 и 3.0.