Problem is fixed, I found a helpful article
https://forum.arduino.cc/index.php?action=post;topic=299665.0;last_msg=3230691
The issue was with the Atmega16U2 firmware. When the chip comes from the factory the fuse byte settings are locked so you need to first remove the lock, then tell the chip which fuse settings to use for the LOW byte, then flash the hex file.
Thanks