I recently encountered this problem when I was trying to return a simple object with several public properties. It seems one of the properties was not being exposed in the XML returned by the web service. I wondered what could be the difference when I stumbled upon this thread:
C# get property not visible in Web Services General
which led to this KB article:
Read-Only Properties Cannot Be Exposed by XML Web Services
It seems this is by design. The workaround would be to create an empty setter for it.