I often need to copy/paste a large tree and had the same problem with duplicate ids. Now, after pasting the tree, I narrow to the tree and run the following function. This will visit every heading at any level in the tree and either change its id or, for newly-created headings, give it an id.
(defun bw/org-add-update-ids-to-headlines-in-file ()
"Add ID properties to all visible headlines in the current file which
do not already have one. Change the IDs of those that already have them."
(interactive)
(org-map-entries '(lambda () (org-id-get-create t))))
(spacemacs/set-leader-keys "oa" 'bw/org-add-update-ids-to-headlines-in-file)
Maybe I should also look into adding an id automatically every time I create a new heading...