Hallo Josef,
ich kürze ab:
<xsl:for-each select="person[position() > last() div 2]">
<xsl:variable name="lage3">top:<xsl:value-of select="person[position()-80]"/>px</xsl:variable>
- du bist bereits innerhalb von for-each für person
- dann holst nochmal die position von person: was du machst ist also person/person[position()].
was du aber brauchst ist die position der aktuellen person:
<xsl:value-of select="current()[position()-80]"/>px</xsl:variable>
Grüße
Thomas