I think the issue is parent/child relationship between objects. This relationship assumes that the child object cannot exist without its parent. This means that the child object (Order) is automatically deleted by the system once it is dissociated from its parent (TruckDelivery).
This also implies that child objects should only be created from the form of the parent object, not independently (as the latter would imply the children objects can be created without a parent).
All this means that the "swap select" control is not the right control for parent/child relationship as it allows the user to select objects from the list of already existing objects.
So the recommendation is either to get rid of the parent/child relationship and use "swap select" or keep the relationship and not use "swap select"
Best Regards