These are different:
<xsl:variable name="stuff" select="person"/>
<xsl:variable name="stuff"><xsl:apply-templates select="person"/></xsl:variable>
The first is a node set and can be selected against:
<xsl:apply-templates select="$stuff/name"/>
The second can't be manipulated.
Which means you can't use the results of template transforms in the same stylesheet.
...but there are extension functions which let you do so and XSLT 2.0 will as well.