At first, you have to hook the function. For that you binary-debug Orbiter to get the address of the VESSEL::GetDockStatus() function. Then you overwrite the memory address with a JMP command to jump to your own function. In this function, you check the this-pointer if it is equal to your vessel. If not, you jump forward to the original function's code that you stored somewhere else. If it is, you return the handle of the ghost vessel. This ghost vessel should be the one associated with the base. E.g. a landed dummy vessel sitting inside the base perimeter, or a vessel that itself resembles the base structure (also landed, of course).
This way, the UMmu code believes the source vessel to be docked to the ghost (or base) vessel and initiates a attachment-based inter-frame UMmu transfer.
I have already implemented such a system in terms of an extension library used in Ascension Ultra. The base was implemented with a hybrid config/vessel approach and included UMmu transfer from vessels to base and vice versa.
So it is possible, but I wouldn't call it easy.