You have to return a known type . It can't return just "object" or even an interface. How would wcf know what to serialize the object into on the client if there is no datacontract?
Normally, when passing parameters and return values between a client and a service, both endpoints share all of the data contracts of the data to be transmitted. However, this is not the case in the following circumstances:
... The declared type for the information to be transmitted is Object. Because every type inherits from Object, and it cannot be known in advance which type is actually sent, the receiving endpoint cannot determine in advance the data contract for the transmitted data.
http://msdn.microsoft.com/en-us/library/ms730167(v=vs.110).aspx
Also
You could use KnownTypes to map your Interfaces and Objects. Look at this links: WCF - Object as known type -> interoperable? WCF, Interface return type and KnownTypes