Hi James,
I believe the package_name column in acs_object_types refers to the PL/SQL package name rather than the APM package name. I think it might be used to optionally drop the PL/SQL for an object type when you delete the type, and so you'd want it to be constrained unique to prevent automatically dropping the PL/SQL for another type that isn't being deleted.
HTH,
Tom