You'd have at top of stylesheet:
<xsl:key name="Authors-by-Name" match="Author" use="Name" />
And Instead of <xsl:for-each select="Author">
you'd have
<xsl:for-each select="Author[count(. | key('Authors-by-Name', Name)[1]) = 1]"> <!-- gets unique authors by name -->
Inside this for-each loop, to get all authors with the same name, you'd put:
<xsl:for-each select="key('Authors-by-Name', Name)">
Not entirely sure what you want as end output, so you might want an <xsl:sort> inside the first for-each or something else.