This will take a few steps per changeset.
In the old branch directory, do:
bzr unshelve --keep ID
In the new branch directory, do:
bzr merge --uncommitted OLD_BRANCH_DIRECTORY
bzr shelve --all -m MESSAGE
Back in the old branch, do:
bzr revert
to get it back to its original state.
The unshelve operation puts the changes in the working directory of the old branch, the merge transfers them to the working directory of the new branch, the shelve operation does its usual work, and the revert resets the old branch to its original state.
Choose ID, OLD_BRANCH_DIRECTORY, and MESSAGE as needed. Repeat for each shelved changeset.