i'm not sure what is exactly your case but what i usually do is the following:
Create Purchase order for items
create separate purchase orders from different vendors for custom duties, freight,...
the regular case, is post receive the purchase order, then assign each of the "charge item" PO's to that order.
in some cases customers pay these charges before receiving the products, and they want to link these charges to PO without assignment. i create a dimension called "purchase order" containing the order number and i assign it to the PO all related "Prepaid" charges.
in some cases we make a customization depending on the customer's needs
hope this helps :)