I have often shelved code in one branch only to find that I’m required to check it in to another at some point in the future. For this you can use the following TFS power tools command:

tfpt unshelve [shelvesetname] /migrate /source:[serverpath] /target:[serverpath]

This will unshelve your shelve-set and migrate the paths from source to target.