I ran across your post while looking for information on my own microphone issue. I have a Samson G-Track Pro which supports up 96000 Hz, 24-bit recording. The sound I get is fine under Windows, Linux, and FreeBSD. The only issue I'm having is that uaudio only detects 32, 44.1, and 48 KHz sampling rates -- not the 96 KHz sampling rate. Although it does detect the 24-bit sampling depth. Since no one else has responded yet, I thought I might at least suggest checking the output of dmesg and/or sysctl -a, grepping for keywords like uaudio or pcm to filter out the relevant information. The basic starting place is probably checking to make sure your mic's capabilities are correctly detected. You also mentioned using virtual_oss. It's worth disabling that and checking your results. If everything sounds fine without virtual_oss, then you know it's the virtual_oss configuration. If you still have problems, then you know the issue is at a lower level.
As far as Pipewire is concerned, I tried Pipewire under Gentoo because I *really* wanted the per-application audio support Pipewire provides for OBS. Unfortunately, I had problems with very bad stuttering audio in OBS from my microphone when using Pipewire. Notably there were no problems with Audacity -- only OBS. Those problems went away when I switched back to Pulseaudio. Pipewire did set my mic up at 96 KHz, 24-bit audio automatically, and Pulseaudio sets it up, by default, as 48 KHz, 16-bit audio. So Pulseaudio does require manual configuration if your mic supports anything higher than 48 KHz, 16-bit audio. And Pipewire apparently still has bugs when it comes to resampling. This became apparent when troubleshooting with one of the Pipewire devs on IRC. In any case, my point is that Pipewire does offer new features, but it still has issues that haven't been ironed out yet. Pulseaudio has problems, but it has been around long enough that the bugs have been ironed out pretty well at this point.