It looks like it is just a poor implementation by Tibco with the WCF component when handling CLIENT_ACKNOWLEDGE. Due to the fact that the session object is abstracted you cant really ACK for things you dont have access to.
Options are as follows:
- Set the pre-fetch setting on the queue to 1
- Use EXPLICIT_CLIENT_ACKNOWLEDGE
There is also a gotcha where if you throw an exception without a ACK it will get stuck on the queue.