I'm running a Micro clone with an atmega32u4. Here's what happens.
I upload the pro micro bootloader using AVRdude using an avr pocket programmer. No problem.
I upload the Blink example sketch via usb to prove I am pushing code correctly. No problem, the LED starts blinking.
Then, the board, which had been on COM8, disappears and a new COM7 connection shows up in the IDE.
The weirdness occurs if I unplug the board. As soon as I do plug it back in (either to USB or external power) the blink sketch starts - at a fraction of the normal speed! My 1 Hz blinking is now about 1/8th Hz. Also, the COM7 port continues to show up, not the original COM8 that allowed successful sketches to upload. I cannot upload a second sketch to the board via the new COM7.
In order to upload new sketches, I have to burn the bootloader back to the board and upload the sketch again...and repeat. Has anyone ever had a board spontaneously change speeds after cycling the power?
I upload the pro micro bootloader using AVRdude using an avr pocket programmer.
My 1 Hz blinking is now about 1/8th Hz.
The only time I have ever seen this symptom is when I loaded a program into an ATtiny85 using a boards.txt file that configures it as an 8Mhz device (the default is 1Mhz) and I forgot to do BURN BOOTLOADER to set the fuses. This cause the chip to run 8Mhz code at 1Mhz. As soon as I realized the oversight and did BURN BOOTLOADER it started running at the correct speed and the 1 second Blink example was 1 second and not 8 seconds. I don't know if this is your problem but FYI...
Just an update. Based on a suspicion that the 32u4 chip was booting up in power-down mode, I shorted reset and gnd and the chip wakes up. Cycling the power though, it goes back into slow-motion mode. I'm not sure why the chip is starting up in some sleep mode. If I repeat the above procedure with a Pro Micro board from Sparkfun, it doesn't go into power-down/power-save mode on startup.
I just needed to set the fuses. I added efuse:w:0xcb:m -U hfuse:w:0xd8:m -U lfuse:w:0xff:m to my command when running avrdude and the board starts up correctly every time now!