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:
which led to this KB article:
It seems this is by design. The workaround would be to create an empty setter for it.