Why don't you simply translate the + sign out, for example:
<xsl:call-template name="odds_check_tpl">
<xsl:with-param name="odds_field" select="translate(., '+', '')" />
</xsl:call-template>
Then, assuming odds cannot be zero, you can simplify your test to:
<xsl:choose>
<xsl:when test="number($odds_field)">
<xsl:value-of select="$odds_field" />
</xsl:when>
<xsl:otherwise>"Not Available Yet"</xsl:otherwise>
</xsl:choose>
Edit
If you want to preserve the + sign at the output, then call the template without translating:
<xsl:call-template name="odds_check_tpl">
<xsl:with-param name="odds_field" select="." />
</xsl:call-template>
and do the test as:
<xsl:choose>
<xsl:when test="number(translate($odds_field, '+', ''))">
<xsl:value-of select="$odds_field" />
</xsl:when>
<xsl:otherwise>"Not Available Yet"</xsl:otherwise>
</xsl:choose>
--
Let me just stress again that this assumes odds are not supposed to be zero (as this is not at all obvious from the examples given); in such case the result will be ""Not Available Yet".