Not sure what IAD is, it seems to be something for grouping logically related interfaces together?
I'm not exactly world class expert on writing USB descriptors, but isn't it the case that you only need a device descriptor with bDeviceClass=0 (per-interface) and a configuration descriptor specifying two interfaces and two interface descriptors, one each for CDC and HID? Host drivers should bind to each interface separately.
LUFA has a demo which includes CDC and a mouse. It's AVR, but descriptors are universal.
As for Windows and its USB detection and INF files,
I think you could look at the descriptors of any commercial device which works on Windows sans drivers.
Chances are you could get more respnose if you moved this to "microcontrollers".