Hummm… the core of my problem was the type of sourceObject, I clearly have to convert the GObject* to a SocketClient thus:

auto client = ObjectG.getDObject!SocketClient(cast(GSocketClient*)object);

annoying, but it seems to work. I still have problems in that things are not working, but I suspect it is now more to do with the actual I/O than the D/C interworking.