Notably addSoapHeaders() must be called within handling class/object.
If you call addSoapHeaders() like this:
$server = new SoapServer("some.wsdl");
$server->setObject(new Service());
$server->addSoapHeaders(new SoapHeader("ns", "Header", "value"));
$server->handle();
Your SOAP header will not be added to the server response as it will be overwritten by result of handle() function.
If you want to add SOAP headers to the resulting response you should make $server global/static variable and then call addSoapHeaders() from within of the method of Service class which will handle the request.