Вы можете использовать IServiceBehavior, который, в свою очередь, будет использовать DispatchMessageInspector.
Для клиентского прокси вы должны создать IEndpointBehavior, который будет использовать IClientMessageInspector
IClientMessageInspector будет создавать экземпляр MessageHeader или производного типа и добавлять его к каждому запросу в методе BeforeSendRequest.
DispatchMessageInspector будет анализировать каждый запрос внутри метода AfterReceiveRequest и извлекать оттуда заголовок.
Одно предостережение об этом заключается в том, что я не думаю, что это намерение или заголовок будут документированы внутри WSDL. Для этого, я думаю, вам придется взять на себя управление с помощью пользовательской реализации интерфейса IWsdlExportExtension.
Andrew