I stayed with classic ASMX for a long time mostly because it worked with very little effort. The biggest trouble with WCF is that it gives you so many options which have to be set so precisely or nothing works. It is maddening and pile of documentation you have to go through to get the right answer is overwhelming. A recent video I discovered on Channel 9 showed how to meticulously make a WCF service AJAX friendly. It was a pretty extensive configuration but I found that I needed to enable web sessions (not wcf service sessions) and there was no simple way to do so, until I came across documentation that reminded me about service host factories.
Specifically, the WebScriptServiceHostFactory allows me to configure my service host to automatically be AJAX friendly. I do so by adding the Factory attribute to the service host declaration.
Using WebScriptServiceHostFactory allows me to strip all of the configuration details out of system.serviceModel in the web.config that I added to manually make it AJAX friendly. To enable back end support to use web sessions I had to set add a little to the web.config.
To enable web session support I added the AspNetCompatibilityRequirements Attribute and set it to be required.
Now the deserialization works perfectly and data is structured according to how I have set up the DataContract objects. Now I can get back to work and get this thing completed!