One thing you could do, is continue to cherry pick. And then, when you think you've got all the commits "merged" in by cherry-picking (cherry-picked-branch), create a new branch (let's call it merged-branch) and merge in the tips of all the other branches on the network. this will make it look clean. Then, do a diff of the merged-branch and the cherry-picked-branch and make a new commit on the merged-branch so that it's the same as the cherry-picked-branch (one way you could do this is just check out the cherry-picked-branch, copy the project directory to the Desktop. Then, check out the merged-branch and just replace the project directory with the one on the desktop, then commit the changes.)
Now, the branches should have the same code, ie,
git diff merged-branch cherry-picked-branch shouldn't output anything. But, the merged-branch will have all the commits from the other branches merged into its history, and so, these commits should not show on other branches on your network graph.
The only thing to be careful of here is that this is an all or nothing approach. If you are wiling to go through all the commits and make sure you're not leaving anything out, then this is fine. but if you just merge everything in, and then make a new commit to erase all that you just merged, then those commits will no longer appear on the graph, even tho they should because that code is not in the repo anymore (even tho the commit is, because you just undid the code in your last commit). So, we'd want those commits to show if it's changes that have not been incorporated into your repo.
Matt