Кажется, что вся функция могла бы просто сделать
<xsl:function name="cdocfx:getDisplayableDiagnoses">
<xsl:param name="clinicalDiagnosis"/>
<xsl:param name="entityIdList"/>
<xsl:perform-sort select="$clinicalDiagnosis[@is-active='true' and cdocfx:shouldDisplayDiagnosis(.,$entityIdList)]">
<xsl:sort select="cdocfx:getDxPriority(.)" order="ascending"/>
<xsl:sort select="fn:upper-case(cdocfx:getDxDisplay(.))" order="ascending"/>
</xsl:perform-sort>
</xsl:function>
, если у вас нет особой причины использовать переменные и делать копии этих элементов.