Based on the general symptom of USB devices not working when XHCI is enabled, it would sound like your OS has USB 2.0 drivers but not USB 3.0 drivers.
What does this sort of BIOS setting do? I found a good summary of the choices for a similar 'XHCI Mode' BIOS setting in a post by tonymac user a6f691ac:
XHCI Mode = Disabled
- The on-board USB 3.0 port function like a 2.0
XHCI Mode = Enabled - The on-board USB 3.0 port function like a 3.0 port
XHCI Mode = Auto - The on-board USB 3.0 port function like a 2.0 port
before OS USB 3.0 driver load. If you reboot the OS, the on-board USB
3.0 port again function like a 2.0 port during this reboot BIOS phase before OS USB 3.0 driver load.
XHCI Mode = Smart Auto - The on-board USB 3.0 port function like a 2.0
port before OS USB 3.0 driver load. If you reboot the OS, during this
reboot BIOS phase, BIOS is "Smart" enough to avoid downgrade the USB
3.0 port back to 2.0 functionality before OS USB 3.0 driver load. So Smart Auto is faster than Auto on 2nd boot onward, but Enabled is
fastest once you are sure the OS has the USB 3.0 driver installed,
because it avoid the switching. Making the on-board USB 3.0 port
function like a 2.0 port is mainly to support OS installation or to
support OS that does not have build-in USB 3.0 driver, so that the USB
keyboard would still work if the user plug-in a USB keyboard or any
other USB devices into the USB 3.0 ports before the OS is installed
with the USB 3.0 driver come with the motherboard.
Each major version of USB has used a new software interface on the USB controller (1.x: UHCI/OHCI, 2.x: EHCI: 3.x: XHCI), each incompatible with the drivers for the previous version. Newer USB controllers work fine with older USB peripherals, so there is no reason for a computer to have anything but the latest USB hardware -- provided that it's fully up to date with the necessary drivers.
However, when installing an OS, there's the possibility of a chicken-and-egg problem where you have the drivers in hand but they aren't built into the OS installation, and you don't have a way to complete the OS installation and get the drivers on to the system other than using the hardware that the drivers are for.
To get around this for USB, systems either include dedicated older ports (for instance dedicated USB 2 ports on a system that also has USB 3 ports) or else they put a selection like this one in the BIOS that lets you change ports to use the older interface standard on the computer side, and then once you've got the OS on and the updated USB driver installer copied to the system, you can change back, install the update USB drivers, and now everything is running on the newest faster USB version.
The various "Auto" settings seem like an attempt to provide a BIOS configuration that works at full speed normally without having to change a BIOS setting at install time. This is presumably to save tech support calls from individual owners who are reinstalling their OSes, as well as to suit centrally administered environments where all OS installs are done by remote network boot and something like changing a BIOS setting on an individual machine part way through the setup process would be impractical.