Have you tried the network connection? That might work when USB doesn't. I suspect that most of us use the network connection.
I had a similar USB problem with a different HP laserjet. I have pasted below the solution in that case. I have no idea if this is relevant to your situation, but maybe it will point you or others in the right direction. I'm only guessing that you might succeed by deleting what has already been done, and doing a fresh reinstall of the USB driver. But I don't know enough about the USB driver to be much help in telling you where that is for the Z3100 since I have never used the USB connection.
PS I finally the got the Z3100 working with Vista, but have to print directly and not use the spooler. In my case, I am leaving well enough alone. I won't be installing the new firmware or driver for the very reason that you provide. I'm afraid that it might cause even more problems. So I am leaving well enough alone as long as I can print. Barely.
*****************
USB solution for a different HP printer --
* I couldn’t get the HP 3030 to connect through USB. The drivers would install OK, and sometimes it would print a test page. Once it printed a test page and a word doc. When I then rebooted, it wouldn’t print at all.
* Solution:
* Unplugged the USB cord to printer
* In Device Manager under IEEEE 1284.4 compatible printer, uninstalled the HP LaserJet 3030 (DOTPRT)
* NOTE that I uninstalled the DOTPRT, not the DOT4USB that us under IEEE 1284.4 devices
* Then we cleared out the printer itself to restore all defaults
* Then reboot the PC as well, and the PRT driver will reinstall on its own