Out of 15 Arduino Uno custom boards, I have 2 where Windows does not recognize the device as an Arduino port or (after resetting the 16U2 manually) a DFU port.
In all 15 cases, I programmed the boards using the ICSP with Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex, and set the fuses to low FF, high D9 and extended F4. The crystal oscillators are working at 16 MHz and I have checked continuity between the USB port and the 16u2 (RD+,RD- and VUSB). I replaced the 16u2's but the same problem remains, so it must be something else.
I read somewhere that the oscillator frequency is very critical to USB connection. This is one of the reasons I decided to use a crystal and not a resonator. Other than that, the circuit is identical to the standard Uno Rev 3.
There appears to be activity on RD+ and possibly RD- when I connect the USB or manually reset the 16U2, but without a USB analyzer I cannot tell what it is doing.