This looks like it could be an issue with the noise treshold. In Blender 3.0, the render settings were renamed and moved so adaptive sampling is used by default and you may have to play a bit with the numbers to get the same result. With the new settings, you are expected to set max samples to something very high and control the quality level with the noise treshold.
Also, I have a workaround that can help keep more detail when denoising:
-Render and denoise at double resolution (you can reduce the samples so it doesn’t take longer).
-Save the image.
-Use an image editing software to reduce back to intended resolution.
But keep in mind that if you use adaptive subdivision with this trick, you may also need to reduce the quality of the subdivision, as the adaptive subdivision would generate more polygons with bigger screen resolution.