you could try an old trick of mine...
loop a piece of twine around the grommet and in the groove that uses to locate in the firewall. you should be able to then carefully pull and work the grommet back into place as you pull the twine out. expect to need to do this a couple times to get it right, possibly with more than 1 layer of twine. you'll figure it out if you're clever.

as for getting through the firewall... pull back the carpet and look along the seam sealer. you'll see a small plastic plug partially buried by the sealer. remove the plug, trim it to be tight around your wire of choice, then feed the wire through and reinstall the plug. seal with your choice of sealant.
_________________
2007 Jeep Liberty Sport 4x4 3.7L 6spd
- MOABs with Goodyear Wrangler All-Terrain Adventure With Kevlar 245/70R16
- JBA UCA 4.5
- OME 790/948/90009/N32
- Western Suburbanite 7'4" plow
- DetoursUSA Backbone
- HF 12k# winch
[SIZE="1"]WTB: project liberty near N.NJ. stick shift, 4x4, working motor optional,
CHEAP[/SIZE]