Hi Alan,
I think one of the challenges with contacts is that they are referenced all over the place in several tables. So before a contact can be deleted, it probably must be dismantled from the referencing tables. Otherwise it is bound to result is orphaned records in all the tables where the record has been already referenced.
What is the business case for wanting to do archive and purge on contacts? why not just make the records inactive instead?
If the records have not been referenced before, then pdm_userload -r <filename> can be used to get rid of the contacts.
===
Kind Regards,
Brian