I am follwing the example here Branch from local workspace because I have the same scenario.
Shelveset details dialog appear, after clicking unshelve it showing "An item with the same key has already been added."
Any advice please?
As others have indicated in the comments, undoing changes from the main branch (presumably the SOURCE branch for the shelveset you want to unshelve), should fix the issue, allowing you to continue with the merge behavior.