Automatic xslt generation is a double-edged swore. It can backfire terribly at times if you don't know many contingent factors in play that might need user-intervention. That software can put up parameter with dreadful select="/.." that I would never, for instance. But that is not the problem, they can do that if it amuses them.
This is the problem. In all your (named) templates, where-ever there appears this block:
<xsl:for-each select="$input/node()">
<xsl:if test="not(self::text())">
<xsl:if test="not(self::*)">
<xsl:value-of select="."></xsl:value-of>
</xsl:if>
</xsl:if>
Replace the block by this line.
That would make xalan well-behaved. The necessity of it is in fact processor-dependent, too bad.
Edit note: code block seems having problem in display for this moment?!