Do you have a method in your service that exposes your 'PublishToDataContract' class? If not then this is why the proxy class in your client doesn't contain the definition.
Try this - In the interface of your WCF service (And then implement it)
[OperationContract]
void ExposeContract(PublishToDataContract item);
This will expose the publish to data contract to the client.
Bear in mind that this is a bit of a fudge Smile | :)