What you want is some kind of element removal.
I always start with this Wikipedia example for such kind of task:
https://en.wikipedia.org/wiki/Identity_transform#Using_XSLT_3
This would just remove all CheckResult entries:
<xsl:template match="CheckResult"/>
Since you want to keep the 1st one, this is what you want:
<xsl:template match="CheckResult[position() > 1]"/>
This might work as for simple example. But in case you only want to remove all but 1st CheckResult children of CheckResponse and keep them elsewhere, you need to adjust the XPath expression accordingly.
DataPower has XSLT 1.0 compiler with XPath 1.0, here is spec on XPath position() function used:
https://www.w3.org/TR/1999/REC-xpath-19991116/#function-position
P.S:
xsltproc is an old command line XSLT 1.0 processor and can be used for this example:
$ xsltproc soa.xsl inp.xml
<SoapEnv>
<SoapBody>
<CheckResponse>
<CheckResult>
<Message>abc</Message>
<Result>NO</Result>
</CheckResult>
</CheckResponse>
</SoapBody>
</SoapEnv>
$
------------------------------
Hermann Stamm-Wilbrandt
Compiler Level 3 support, IBM DataPower Gateways
IBM
Boeblingen Germany
------------------------------