Is it possible to remap the PWM output to other pins?
This is possible in a fashion. The PWM pins are defined by the microcontroller hardware, which is something that can't be messed with easily (not via software, at any rate). 



You can, of course, scratch out some of the tracks on the board and add your own, but this is a rather icky solution, and you may end up irreversibly damaging your board1.



A better solution is to make a shield that remaps the pins. This is not too hard: You first get a perfboard and some male/female header strips of the appropriate size. Now, you solder the male headers on, aligned with the Arduino. Then, solder the female bergs onto the opposite side of the perfboard -- stagger them, but make sure that they are spaced out the same as on an Arduino. Finally, do whatever cross-connections you want. Note that you will need to offset the header strips



If the reason you want to remap the pins is because some code you use assumes PWM on the wrong pins, then simply create a method transform() that takes in a pin number and maps it to another (use a switch case statement). Then, replace (most IDEs have a find/replace function) all the digital/analog read/write methods with a new set of functions, for example:


void digitalWrite2(int pin, int val){
 digitalWrite(transform(pin),val);
}




And, finally, you can use the SoftPWM Library for software PWM on all pins. This may not be the exact same as hardware PWM (different pulse characteristics, may make your application slow), but it it's a viable option.

1. Well, you are irreversibly damaging it either way, but there is a chance you may scratch out too many things and you won't be able to put the board back to even semi-working conditions. Messing directly with the board is not advisable unless you know what you're doing.