Windows doesn't have a clue on how to deal with your 2970WX, nor the 2990WX. The 1903 update sure helped a bit, but not enough.
These two CPUs have a special topology where two dies out of four don't have direct access to memory. This was the only way to get 32 cores in socket TR4. Epyc doesn't have this problem as it supports eight memory channels, but that's not available on the HEDT platform for obvious reasons.
See the difference? His 12 core (or any up to 16 core TR) belongs in the first category. Things can easily be less than optimal on the 2970/2990WX without decent OS management.
Linux on the other hand has been dealing with weird topologies for decades. Try the Linux version of GB4 on a distribution with a recent kernel that has complete support for anything Ryzen (for example Ubuntu 19.04, kernel 5.0) and you'll see your MT score in the 60-80k range (depending on memory/IF clocks and overclocking) as it should be.
If any of your DC research currently running on your threadrippers can be done on Linux, then please take the time to make the move. It's more than worth it. Especially on the 2970/2990WX's case.
Zen2 Threadripper fixes everything , having every CPU chiplet go through the I/O die to memory apart from IF2 doubling bandwidth to further help things...and also explains
why it's now possible to get 64 cores on TR4 only sharing 4 memory channels without any immediate downsides as with the 1000/2000 series parts (only memory bandwidth starvation for the right workloads). Same reason why there are now 16 cores on AM4 on only two memory channels.