PHP5 xsl processor has a different behaviour than PHP4's one with CDATA sections. (see http://bugs.php.net/bug.php?id=29837)
Loaded XSL sheet CDATA sections does not allow, by default, output-escaping handling (everything in the CDATA is escaped by default).
So in this case you can't build your XSL Dom the usual way:
$xsldom = DomDocument::loadXML(file_get_contents('sheet.xsl'));
and must go through this one (allowing LIBXML_NOCDATA parameter):
$xsldom = new DomDocument;
$xsldom->load('sheet.xsl', LIBXML_NOCDATA);
Then the CDATA output-escaping behaviour will be correct.