Small tip for OP and anyone else, in HWINFO settings turn on snapshot CPU polling for more realistic recording of your frequencies
You can then run boosttester to see what your cores are actually boosting to
https://github.com/jedi95/BoostTester/releases
It runs an incredibly light load, per core, in a loop to make each core boost as high as it can. This will be recorded correctly in HWINFO with Snapshot CPU Polling enabled.
You then want to make sure your Core clock and Core effective clock maximum are pretty much the same.
As you can see from above cores do not magically boost to exactly the same frequency like what HWINFO may show without snapshot polling. Think of it like the "requested frequency" isn't what your cores might actually reach. So HWINFO might show it requested 5050mhz or even 5100mhz for every core, but what they actually hit is under that.
I've got a +50 AUTO OC above and as you can see only a couple of my better cores manage 5.1ghz. The default max boost for a 5950x is 5050mhz.
CCD1 is normally always better than CCD2 on Ryzen CPUs with 2 CCDs.
As for PBO, remember to take your time to properly test the stability of each core. Sadly it can take many hours but it's honestly needed
That's my cores on a 5950x. Yes, Core5 you read right. 6 hours in testing that core on its own on a loop brought an error at -2. It's one of my best cores so not too surprised at the result, you tend to find your better cores of which there are 4 on a 5950x can't go as low. But -1 is still quite the outlier from the rest.
95% of the time anyone saying they are -30 all core stable are talking nonsense. Just because you can boot a game and play it for a few hours does not mean your cores are stable. Especially since gaming can be very light on the CPU.
Corecycler as posted above is really good to run, OCCT is quite good as well but limited to 1 hour at a time in the free mode. So I mostly recommend Corecycler.
Y-cruncher is the best at testing overall CPU stability once you think you've got a curve locked in. It hammers the CPU on multicore loads. It also puts load on the IMC so it will hit your RAM too.