Нужно использовать атрибут ServiceKnownType
и применять его в интерфейсе сервиса (на сам интерфейс или на отдельный метод):
[OperationContract]
[ServiceKnownType(typeof(HashHead))]
[WebGet(UriTemplate = "Head1", ResponseFormat = WebMessageFormat.Json)]
MyMessage GetJsonHead1()
{
JsonMessage result = new JsonMessage();
result.Head = new HashHead("test","test");
return result;
}