You can write templates for those elements containing data you want to normalize, below I do that for attribute values, text node, comment nodes and processing instruction data.
<xsl:param name="in" select="'čžš'"/>
<xsl:param name="out" select="'czs'"/>
<xsl:template match="*">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{name()}" namespace="{namespace-uri()}">
<xsl:value-of select="translate(., $in, $out)"/>
</xsl:attribute>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="translate(., $in, $out)"/>
</xsl:template>
<xsl:template match="comment()">
<xsl:comment>
<xsl:value-of select="translate(., $in, $out)"/>
</xsl:comment>
</xsl:template>
<xsl:template match="processing-instruction()">
<xsl:processing-instruction name="{name()}">
<xsl:value-of select="translate(., $in, $out)"/>
</xsl:processing-instruction>
</xsl:template>