I think I would tackle this with something like
Code:
<xsl:variable name="rows" select="//Row"/>
<xsl:for-each select="distinct-values(for $n in $rows/Column/@name return substring-before($n, '_Month_Total')[. != '']">
<xsl:variable name="month"
<Row>
... create row for month $month ...