I'm not sure why the first one wouldn't work..
Water.BBoxTop should get you the y-coordinate of the top of the water, compare the distance between it and your particle-objkect and it should work fine..
If you want to use the blendmode putting the particle object above the water and setting it's blendmode to source-atop should do the trick..
Just put the water and the particle-object in one layer and set force own texture in the layer properties to yes..