Hi Jacko,
I think there is some issue with the logic. During the loop of source_package we are deleting all the records with claim, customer and material. So I think source_pacakge is left with only very few records in this loop only. And again while updating in result_package we are reading source package for claim, customer and material which we already deleted from source_package. So that is why you are losing most of the data.
Try not deleting the source_package records in its loop. Also can you tell us what is the actual requirement for which you are using expert routine?
Thanks
Amit