Are you implying that at idle and low-speed/low-rev driving the motor runs smooth without any problems, but that it is misfiring during acceleration or uphill driving...or when at WOT? When at WOT your 94 ZJ is ignoring 02 sensor input so that wouldn't do anything at all. I would have said its possible to have an intake gasket leak or vacuum leak (sinced you've done so much already) but that really only presents itself during idle and has very very little effect at higher RPMs.
Assuming you have
no problem during idle or low-speed driving:
1stA-Check the voltage at the MAP and CAM sensor connectors between power supply pin on connector and a ground source. Make sure they are VERY close to the manual specs (simply swapping senors won't reveal if there is a problem here) Want to make sure the ECU is creating the correct voltage. If there is a problem, before you try swapping ECUs... lol....try checking the voltage of these supply wires at the ECU harness directly. If there is a disagreement, problem is the connection, not the ECU. If both are wrong, proceed to B. Even if there is no problem, do part B.
1stB-Just try resetting the ECU by disconnecting the battery for a while allowing any charge stored in its capacitors have been emptied. Only problem with that is you may or may not have to drive over 150 miles or so for it to run correctly during the learning phase....but
the point is to see if the specific problem you are having is now changed. Immediately after resettng. Warning, Jeep might stall or died the first few start-up attempts, don't panic.
2nd-Check fuel pressure while driving for a few minutes and compare to specs (as opposed to just reving in Neutral for a few seconds)
3rd-Test ignition coil (quick swap if you have access)
4th-Given that you've already done stuff already you're running out of options....try a test light on each injector and see if any are going out under acceleration. I would have said try the same with spark plugs but you said everything was replaced.
5th-Sure go ahead and compression check
6th-wait for someone smarter than me to respond
