You are doing several things wrong.
Firstly, if there is a variable called employmentID then the way to reference it is as $employmentID - note the "$".
Secondly, if the variable is initialized in a different template, then it will be out of scope, so you will not be able to reference it. (More fundamentally, you are assuming a specific order of execution which is not guaranteed)
Thirdly, there is no Employment element in your source XML that has a following-sibling called RelatedKey, so this predicate will always be false.
You can get the result you want as follows (not tested):
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="CBAParty"/>
<xsl:template match="Party/Employment">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select="key('e', Key/@ID)/@jobType"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:key name="e" match="CBAParty/Employment" use="RelatedKey/@ID"/>
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference