Particles floating above procedural surface
As Gorgious says, it seems like the particle system can't take the Displacement node into account, in that case what you can do is baking the current displacement setting:

Unwrap you object with the Smart UV Project option
In the Shader Editor plug the wave texture only
Create a new Image Texture node, create a new 32-Bit Float image, keep the node selected:



Bake with Bake Type &gt; Emit:



Here is what you should get:



Create a Displace modifier, put it above the ParticleSettings modifier, choose Coordinates &gt; UV:



Load your texture:



In the Shader Editor, replug only the Principled BSDF:



It should work: