**the short answer in this case was the key switches on the drivers and front passenger doors** but read on for a complete version.
I too had this problem, until tonight. If you know your way around a VOM read on and see my diagrams and you will have this fixed in no time. By probing the purple and yellow wire, (Pin 10) on the bottom black 14-pin bcm connector, (C383 in the diagram in the post linked to herein) the one you can get to without removing the bcm, I could see that the wire was sensing a ground, meaning one of the three door cylinder switches was grounded and telling the BCM to disarm. You can also check all the other door/rear window sensor inputs at this connector.
The only ones that should show a ground are Pin 8 Ground and maybe the seat belt sensor( i havent figured that out yet but it will not effect the lights or alarm).
Suspecting the drivers door lock cylinder switch, I pulled the canopy off the door and unplugged it, that connector is right at the bottom of the door. Immediately the ground signal at the purple and yellow above-mentioned wire went away and I knew I nailed it.
The door lock switch was grounding out or stuck on ground, telling the system to disarm. I put it back together and for the first time since I owned it everything, and I mean everything worked. Interior lights, fade after 20 seconds, the ring around the key, all the chimes, and the alarm even armed when I used the lock switch on the door. It lock and unlock with the fob, the interior lights came on with the fob, the red led blinks on the dash, and the panic button worked. Even the previous owner was stumped by this and had pulled the fuse for the lights.
Best of all the current drain went from 200ma, to 30ma, and to 10ma finally, and the bcm was asleep and not draining my battery. I did not have to use the $10 bcm I got at the junkyard earlier at all. It would have screwed up the odometer anyhow. Ill return it and get something else.
I found a very helpful diagram with pin numbers, wire colors, and function table of the black connector and probed each input for the appropriate signal. I totally recommend you take your multimeter and check the sensor signals for the purple and yellow 'disarm' wire and to the doors and rear window. Mine were ok except for the disarm wire. The link to that is here, scroll to the bottom of the post:
Installing a ZJ/XJ overhead console: - NAXJA Forums -::- North American XJ Association
This diagram, half way down, will show you the block picture of the bcm inputs:
http://www.justanswer.com/jeep/7j4hf-grand-cherokee-disable-alarm-97-grand-cherokee.html
**If you suspect any of the relavant sensors are bad, simply disconnect them until you can repair or replace them. The system wants to see an open circuit on all of them to operate normally.
Two things that will make this tons easier are 1) have a backup supply of fuses for your small ammeter which will blow them if you try to measure your battery voltage when in the 10 amp configuration, I am an electrician and I still popped about 5 of them, but the MOST IMPORTANT HELPFUL thing I found was 2)
INSTALL A BATTERY DISCONNECT SWITCH. IT WILL MAKE THE PROCESS 100 TIMES EASIER AND IS HANDY TO HAVE, IF MAYBE A LITTLE UNSIGHTLY. Also if your alarm goes off while your repair is in progress, usually a few days to round up parts etc; you can just switch off thewhole car and reset it if your door key switches aren't working, until you fix them. I INSTALLED MINE ON negative cable on the underside of the left front bumper. Saves A LOT of time and aggravation ...putting your ammeter inline with the battery and taking it out, and with troubleshooting etc. Also a light wire to the + battery so you can use your voltmeter under the dash to check those signals on the black connector. Hope this saves you $$$'s and puts you back in shape like it did me.