You need namespaces for launching multiple robots. And namespacing packages, frames, topics... are a really big work. Also namespacing PR2 is the biggest version of this problem because it has many many packages for namespacing. I'll write small tutorial for how to namespace robots and doing navigation with them later. But You can follow this sequence;
First look at urdf for tf. Joints, frames must be unic, secondly group your .launch
files with <group ns="robot_name"></group>
tag. Then look at the topics, which one is not connected? Which one is not published? rosrun rqt_graph rqt_graph
is really helpful for this job. Look at rqt_graph for understanding it. Then Try to remap them.
I'm currently running navigation stack with multiple robots in gazebo wtihout editing sources. Also if you have custom packages, You may need to rename some frames etc.
And I suggest, please don't do this with PR2 :)