Always remember that the output of your stylesheet is a tree of nodes, not lexical XML markup. If you want to create an element, you need to create an element node, not an angle-bracket representation of the node. Leave that to the serializer.
In your case this is dead easy: change
You'll also need to make sure that the soap namespace prefix is declared somewhere in the stylesheet.
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference