How to remove frequency offset with RRC as pulse shaping filter
The RRC output only takes the exact constellation point values at exactly the right timing instant. That's what I meant with &quot;coherent detector feeding a synchronously sampled matched filter&quot; in an answer to a previous question of yours.
You'll have to deal with the inter-symbol interference with previous symbols. Which is no big deal – all symbols should have the same probability, so the average phase error you'd get is zero.
But, not so much for the fourth power: that's always a positive error, so yes, you get a biased phase correction term, and that means a misestimate of your frequency. Although I only mentioned noise, uncorrelated ISI looks a lot like nose, and thus it should have been among the reasons when I said

I'd advise against this whole approach!

in the answer to a question that Linda posted a couple of months ago (and seeing that this deleted question of four hours ago is practically a precursor to this question, I'll assume you and Linda basically share a team, or actually are two accounts for the same person. If the second account was made by mistake: Moderators can merge these for you, no problem! Just ask over in Meta.DSP).
You can now either:

Do the timing recovery before the frequency correction, and live with the significantly reduced performance that brings due to ISI or
Drop the fourth-power approach and go for a second-order PLL.