If a USB host system software indicates that "Device Descriptor Request Failed", it means that your device failed to respond to the very basic, initial USB transaction, to return valid descriptor information with correct USB protocol. This control transaction is the very first one in the process of USB enumeration. When this happens, it means that the host system already tried to get the descriptor at least nine times (under Android likely 288 or more times), and didn't get valid results. It usually means that the USB device is rock-solid dead. It may flash some LEDs, but the USB serial interface engine is likely plain dead. Sorry.
Regarding the second part of your question, no, there is no utility to flash VID/PID/descriptor/whatever information from one USB device to another. This information (at least most of USB required fields) is usually either hardcoded in silicon, or the entire device microcode/firmware (if any) must be flashed anew through some external debug process (because the main USB interface is dead).
Your Xbox controller likely has some broken/worn-out wires in the cable. Either throw it away, or check the cable data connectivity first.