what makes you think the bootloader is corrupt? does the usb connection still work otherwise? (digiusb in the sketch) Did you ever use the upgrade files to switch to the 'jumper' bootloader, or switch between versions of bootloader, or use the Burn Bootloader feature to update the bootloader on your digispark to install the clock speed fixes, back when it was working?
If the bootloader really is corrupt (seems unlikely, unless your program was writing things to flash memory "PROGMEM" to store data, or something went wrong with the upgrade program) the only way to fix it is to either use a HVSP device to upload micronucleus again, or use a fuse resetter (you can make one out of the working digispark, a 12v battery, and a transistor and resistor and stuff - there's a recipe somewhere on these forums) and then use an ISP programmer to upload micronucleus. For the ISP programmer part you can actually load Micronucleus on to it then stack the broken and working sparks together like a shield and just plug the working spark in to a usb port then select the USBtinyISP programmer in the Tools menu, then choose Burn Bootloader. After that the bootloader will have been replaced with a current version with the clock speed fixes and stuff.
I'd be surprised if the bootloader went corrupt when you weren't messing with progmem. More likely I think the USB hardware has stuffed up somehow. Maybe the zenner diodes or pullup resistor got knocked off or burnt out somehow, or if your broken spark isn't working at all (the power LED doesn't even light up when powered from a USB port) then you have a power supply problem and likely need to replace or short circuit the diode which connects power from the usb port in to the 5v pin.