I've used this successfully on XSLT outside C1 before. Can anyone let me know what I'm doing wrong?Try using the translate function instead:
C1 uses the standard xslt processor from .NET, it could be that you used another xsl processor/library.
<xsl:variable name="newtext" select="translate($text,'a','b')"/>