В XSLT 1.0 сортировка определяется реализацией, поэтому вполне возможно, что некоторые реализации игнорируют пространство для сортировки.Какую реализацию вы используете?
Я бы порекомендовал что-то вроде:
<xsl:sort select="translate(*[name() = $name],' ','_')" order="{$order}" />
Может решить вашу проблему (хотя, опять же, зависит от того, как вы реализуете XSLTиспользуя сортировку '_')