What to do with the Orin NX as a USB device?

If the Linux (Jetson) side is in device mode, and if that device is custom, then you need to develop kernel code on both the Jetson and the other end for the custom device. If the Jetson side is in device mode, and is working as a “standard” device type (which the Gadget system works with), then it is a case of filling in all of the parameters in the Gadget template. Gadget is more closely described here:

More information for Gadget:

There is a learning curve, especially if you are not already familiar with USB devices (at the driver side). There is no reason you cannot implement each device individually without removing the other. For example, you could add a mass storage device and a virtual emulation of a keyboard and mouse. You could then implement a second mass storage device, or a second virtual keyboard.