I've found that changing `dw#shdsk.bcs` to rearrange the order in which items are taken can prevent then contents of containers spilling out:
TakeItemListParty("dw#bags")
TakeItemListParty("dw#spl*")
TakeItemListParty("dw#tpitm")
TakePartyItemAll("*")
The behaviour of `TakeItemListParty()` for items within containers doesn't seem to be well defined, so taking the containers first with `TakeItemListParty("dw#bags")` avoids that issue.
On a side note, I also changed Saemon Havarian's location next to the main entrance [1560.1165] and gave him some extra dialogue, so that he would initiate conversation but then wait while the party retrieves their items: