Variables in XSLT don't hold fragments of XPath expressions, they hold values. So when you do this:
<xsl:with-param name="field1" select="c:CourtAction"></xsl:with-param>
<xsl:with-param name="field2" select="c:CourtCharge"></xsl:with-param>
<xsl:with-param name="field3" select="i:ChargeDescriptionText"></xsl:with-param>
the values of all three variables are sets of nodes; all the expressions are evaluated with the same context node. If the CourtCharge elements are children of the CourtAction elements, then select="c:CourtCharge" starting from this context node will select an empty set of nodes.
Michael Kay
http://www.saxonica.com/
Author, XSLT 2.0 and XPath 2.0 Programmer's Reference