However, all those use SPI programming, whereas your chip uses PDI. Now I don't have a hardware PDI programmer, and although I have an AVR Dragon this model doesn't (seem to) support the PDI interface.I attempted to make a PDI programmer using a Uno, but the documentation for the protocol is somewhat sparse, and I haven't succeeded yet.
If I had one, I could download the firmware from my Leonardo, and confirm whether or not it agrees with the hex file we were discussing.
avrdude -P/dev/ttyUSB0 -b9600 -cavrisp -pm32u4 -U flash:r:leo.hex:i
Both the Flash and EEPROM memory arrays can be programmed using a serial programming bus while /RESET is pulled to GND. The serial programming interface consists of pins SCK, PDI (input) and PDO (output). After /RESET is set low, the Programming Enable instruction needs to be executed first before program/erase operations can be executed.
The XMEGA doesn't have the SPI based In-System Programming (ISP) interface for external programming, which has been used for megaAVR. Nor does it have the debugWIRE interface. These have been replaced by a two wire "Programming and Debugging Interface" (PDI). This interface can, as the name indicates, be used for both programming and debugging.