okay few things I see here.
First off in your XSLT you have a lonely "<" right after your xsl:select statement for /parentref/fullname.
Once you remove that you will get an output. However it wont be selecting what you want.
Your sorting in one template and then selecting values in a 2nd template but not applying that template.
I've created another sample XSL for you to work from. Take alook at this and see if this helps out. It will print out the 1st <name> element and any of the <parentRef/Fullname> elements.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:param name="sortBy" select="'Name'"/>
<xsl:param name="strXPath" select="//ItemServiceRet"/>
<xsl:template match="/">
<xsl:for-each select="$strXPath">
<xsl:sort select="*[name()=$sortBy]" order="ascending"/>
<xsl:value-of select="Name"/>
<xsl:value-of select="ParentRef/FullName"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>