One approach could be to use translate to remove all zeroes, which will then tell you what the first non-zero character is. You can then use substring-after to chop off the leading zeroes in this way.
<xsl:variable name="firstNonZero"
select="substring(translate($number, '0', ''), 1, 1)" />
<xsl:variable name="noLeadingZeroes"
select="concat($firstNonZero, substring-after($number, $firstNonZero))" />
<xsl:value-of select="translate($noLeadingZeroes, '.', '')" />
(Where $number is your starting input "00000BE0891.116.828")
Or, if you wanted to combine this into one expression...
<xsl:value-of
select="translate(concat(substring(translate($number, '0', ''), 1, 1), substring-after($number, substring(translate($number, '0', ''), 1, 1))), '.', '')" />