Arduino and Adafruit convention is for user programs to have PIDs starting with 8 and bootloaders starting with 0.
Be careful to not use the flash file system while using mass storage because both pieces of code attempting to change the fs can corrupt it.
Everything works fine without USB being plugged in but faults (I think) when USB is plugged in. This is switched away from the USB code from the bootloader onto the USB code thats generated by Atmel Studio using the high level classes from ASF.