Yeah, I have followed a whole bunch of links to try and get to the bottom of this. It’s way too late in our project to change the class structure. Such a fundamental bug, it’s curious it hasn’t been resolved.
In future I will be implementing interfaces instead. Not nearly as elegant, but hopefully bug free.