I agree with Bounty Hunter.
Me too...
When in 2WD on the road, the front tires spin as well (unlike when up in the lift in 2WD). IIRC, on the TJ, much like on my YJ with the alloy axles, the front drive shaft rotates when driving down the road even when in 2WD (it is disengaged in the TC, but the axle rotates nonetheless because both wheels are spinning).
This leads me even more to believe that it is the front DS. As Bounty said, remove it and give it a shot. To remove, you only need to remove 8 small bolts, so you can do it yourself in about 5 to 10 minutes...
Here you can see the bolts you need to undo:
And if it is the U-Joints, you can also change them yourself. Remove the 2 snap rings from the drive shaft yoke ends.
Support the drive shaft so it's sitting level with the 1-1/8 socket facing open side up on the bottom. Place the 11/16 socket on top of the bearing cap and tap it down until the cross contacts the bottom of the drive shaft yoke. Then use a BFH until the cap on the opposite side is out.
Basically, something like this:
Remove the cap and try to get the U-Joint out (you may have to get the second cap out in much the same way... only using a smaller socket set).
Clean up the drive shaft. Carefully remove all 4 of the bearing caps from the new U-joint and stick the cross into the drive shaft yoke. Screw the grease fitting into the cross and make sure that it is facing the same direction it was when you took the joint apart. Pack grease into the caps to hold the needle bearings in place. Put the first end cap in the bottom section of the yoke (open side facing up) letting the cross fall into it as far as it can. Put it in the bottom so the needles have less of a chance to fall out. Make sure the cap is lined up square and the needles are all standing straight up. Tap on the opposite side of the yoke to push the cap up into the yoke.
Hold the cross in the end cap you just seated and turn the drive shaft 180 degrees and carefully install the other bearing end cap the same way. Take the 11/16 socket and tap or press the end caps into the yoke so the snap ring groove is exposed. If the end cap doesn't want to seat it means that one of the needle bearings has probably fallen out of it's place in the cap. Take the joint apart and fix it.
Once the caps are in place make sure that the cross rotates freely in the yoke. It will be tight but you should be able to rotate back and forth with you hand. If you can't, take it apart and see why.
Install the snap rings on both sides using a pliers to squeeze the ring. Make sure the snap rings are seated all the way in the grooves.
Do not put the last 2 end caps on yet. Reinstall the drive shaft.
Line the differential yoke up with the cross on the drive shaft by either turning the shaft (tcase has to be in N) or turning the diff. Place the last 2 bearing end caps on the cross and carefully assemble the joint. Put the straps back over the end caps and bolt them in place. Use some locktite. The book says to tighten them to 18 ft lbs.
Pump grease into the joint until you see it coming out the end caps and your're finished.
If you want more details/pictures, I got this from
here, so you can check it out as well (I am too lazy to write so much, but it is the same process I used for my front DS).
Felipe