@Tobias G2Attached is your model with the changes that I've made. I only made the change to a single pickup Queue (WA1QueueSH). The other pickup Queues would be nearly identical except for the Object inputting into the queue.
I think there was some code on the Truck itself, which I deleted. The bulk of the changes were made in WA1QueueSH (pickup queue). In the Use Transport field, I added manual TS code which simply has the Truck travel to the queue and call a sub task on that same queue. In the sub task (OnMessage trigger) I create a sub task that will pickup all the flowitems that are currently in the queue. This is the reason for the sub task. If not, more flowitems would enter the queue while the Truck is traveling to the queue. I also stop the output of the queue's feeding Object, in this case it is SourceSH. The reason for this is so that no flowitems will enter the queue while the truck is loading the current content of the queue. Hard to hit a moving target. In the sub task, all the flowitems are loaded into the Truck, a message is sent to the queue's feeding Object, the travel task to the unloading queue and the unloading of all flowitems in the Truck to the destination queue. Then the NextDest label is incremented to that the next load pickup will go to the next output port of the queue. And the TransportCalled label is set back to zero. It is set to one in the Use Transport code area so that the code to create the TS only happens once instead of every time a flowitem enters the queue.
I think that is pretty much it. Take a look at the model and see if this solution might work for your model needs.
Thanks.
transport-test15-1-jn1.fsm