Three point usb switching
The idea I suggested in my comment looks something like this:







simulate this circuit &ndash; Schematic created using CircuitLab

The internal memory is not connected to USB at all. Its connected to the micro and it could be an SD-Card (removable or embedded) or a big NAND-flash IC or whatever.
In stand-alone mode the micro just reads from this internal memory.
The USB port is a 2-way OTG port. So if you plug a USB memory stick in then the micro runs in USB host mode and reads the memory stick (either exclusively or in addition to the internal memory).
If you plug the USB port into a PC, then the micro switches to peripheral mode and turns itself into a USB memory stick - exposing its internal SD-Card/NAND-flash/whatever to the PC for reading &amp; writing.

This way you avoid having to do any interesting 3-way USB switching as the micro handles all of the USB traffic in and out and directs data to and from the internal memory as required.