GPP, it seems far more reliable for me personally, this is how mine's setup:
Single policy attached to the computer accounts
Merge loopback processing mode
Point and print restrictions disabled/"Do not show warning or elevation" (in other words just go ahead and isntall the driver)
Then under User configuration of the policy all the printers are added as shared printers twice - one as a delete policy, the other as an update policy.
Item-level tagging is set so that the delete policy removes the printer from ALL machines except those specified in the item level tagging section.
Works flawlessly, the last way i did it i would keep getting roaming profile users have printers get attached and then as they moved around the school they would pickup 5-6 printers each taking over the default, it got messy.
EDIT: attached 2 images so it makes more sense to anyone that does it differently. I should also add i used 2-3 other methods in the past, scripts, print management and another method of GPP and each one gave me loads of grief until i used this method.

