If the 16U2 is damaged, you should be able to still program the Uno from the ISP header using the Arduino as ISP. Use the Upload Using Programmer option from the IDE.
However, the 16U2 might still be okay. You can try and re-program the 16U2 you would need to do that from command line, not from the IDE. You will need to use your Arduino as ISP and connect up to the ICSP header next to the 16U2 chip.
You will need to copy the hex file from ..\arduino-1.0.5-r2\hardware\arduino\firmwares\atmegaxxu2\Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex to the ..\arduino-1.0.5-r2\hardware\tools\avr\etc folder.
From the command line you need to be in the Arduino install path, ..\arduino-1.0.5-r2\hardware\tools\avr\etc;
(note: substitute you own install directory path)
Then run these two command to burn the 16U2 fuses and upload the 16U2 flash.
(note: substitute your COM port you are using for the Arduino as ISP.)
(C) Copyright 1985-2001 Microsoft Corp.
C:\> cd "C:\Arduino\arduino-1.0.5-r2\hardware\tools\avr\etc"
C:\Arduino\arduino-1.0.5-r2\hardware\tools\avr\etc>..\bin\avrdude -cavrisp -PCOM6 -b19200 -pm16U2 -v -U lfuse:w:0xEF:m hfuse:w:0xD9:m efuse:w:0xF4:m
C:\Arduino\arduino-1.0.5-r2\hardware\tools\avr\etc>..\bin\avrdude -cavrisp -PCOM6 -b19200 -pm16U2 -v -U flash:w:Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex:i
Hopefully this should recover the 16U2 on the Uno R3.