Here is a patch file showing the changes you could make to the Arduino IDE verison 1.6.12 to expose the ATmega32U4's built-in serial number as a USB serial number:
arduino_1.6.12_serial_number.patch (1010 Bytes)
You can either read this patch file and make the specified modifications using a text editor, or you can go into the Arduino 1.6.12 installation directory and run:
patch -p1 -i arduino_1.6.12_serial_number.patch
You could modify the patch to read the serial number from EEPROM. Just change
boot_signature_byte_get(i) to some other function call that reads from EEPROM.
Please let me know if you have any questions.