Thanks, I tried this also, while trying zeep. It was a good way to double check what I was doing. I could post a known working soap envelop and gradually get zeep to generate the desired xml.
I noticed that some endpoints wanted a slightly different content type (pasted below) without the soapaction header, instead relying on purely on the xmlns.
Content-Type: text/xml; charset=utf-8