I chased a misfire code for quite a while. It was usually one cylinder, although at times it would change cylinders, or show more than one cylinder misfiring. Mostly, it would be just one. Cylinder #3.
I tried many different things to eliminate the issue, I cleaned the idle air control valve, replaced the MAP sensor, replaced the throttle position sensor, did new plugs, even changed the coil, but still had the issue. I even wondered if the issue was the fuel injectors.
Then I asked the forum what told the computer that a misfire was occurring. One of the members told me it was the crankshaft position sensor. It monitors that function. I replaced that sensor, and have not had the misfire code since.
The sensor's not cheap, about a hundred IIRC. And it's a pain to get to, on the bell housing, drivers side, barely within reach from underneath the Jeep.
And I'll also say that if you consider replacing the CPS, only use a Mopar sensor. I found when replacing mine the previous owner had used a cheapie aftermarket one when he replaced it. It looked new, but did not function correctly.
Don't know if that will work for you, but that is how I resolved the issue in my 2002 4.0 6 cyl.