Попробуйте преобразовать SOAP в String, а затем используйте replaceAll of String с текстом, который вы хотите получить после этого, преобразуйте его обратно в SOAP
ByteArrayOutputStream out = new ByteArrayOutputStream();
soapMessage.writeTo(out);
//converting to String so that replacing certain soap tags could be easy
String strMsg = new String(out.toByteArray());
strMsg = strMsg.replaceAll("SOAP-ENV", "test");
strMsg = strMsg.replaceAll("Header", "RequestHeader");
strMsg = strMsg.replaceAll("Envelope", "testment");
strMsg = strMsg.replaceAll("Body", "InstrumentList");
strMsg = strMsg.replaceAll("xmlns:pay=\"http://www.w3.org/2003/05/soap-envelope\"",
"xmlns:SOAP-ENV=\"http://www.w3.org/2003/05/soap-envelope\"");
//converting String back to SOAP
InputStream is = new ByteArrayInputStream(strMsg.getBytes());
soapMessage = MessageFactory.newInstance().createMessage(null, is);
soapMessage.saveChanges();
soapMessage.writeTo(System.out);
return soapMessage;