@aled Thank you for your answer! I found it extremely helpful, even though I was barking up the wrong tree and asking the wrong questions. The solution I found was to add another ee:transform component after the wsc:consume component. I was also able to simplify my existing ee:transform so that I didn't have to map each individual element. The Add:\soapkit-config flow now looks like this:
<flow name="Add:\soapkit-config">
<ee:transform doc:name="Transform Input">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/xml
ns ns0 http://tempuri.org/
---
payload.body]]></ee:set-payload>
</ee:message>
</ee:transform>
<wsc:consume config-ref="Web_Service_Consumer_Config" operation="Add" doc:name="Outside Consumer" />
<ee:transform doc:name="Transform Output">
<ee:message>
<ee:set-payload><![CDATA[%dw 2.0
output application/xml
ns ns0 http://tempuri.org/
---
payload.body]]></ee:set-payload>
</ee:message>
</ee:transform>
</flow>
When I put logging components in, I can see that after the Transform Output, the payload looks like this:
<?xml version='1.0' encoding='UTF-8'?>
<AddResponse xmlns="http://tempuri.org/">
<AddResult>579</AddResult>
</AddResponse>
... then control flows back to the SOAP Router which puts the payload into a SOAP Body, so it looks like this:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<AddResponse xmlns="http://tempuri.org/">
<AddResult>579</AddResult>
</AddResponse>
</soap:Body>
</soap:Envelope>