(1) Threading problems can occur if either of the Callback channels are not empty.
(2) If the client and service has a long running work then this pattern doesn't scale very well. It can block the client or the service until the process is completes !
(3) It requires a connection back to the client. And there may be a chance to not connect back due to firewall and Network Address Translation problems.
Note :- It is always better to use Request / Response MEP rather than using Duplex method.
Thanks and Regards