It sounds that your problem is that the 'you' pointer is different for the server and each client. So IGNORE_YOU does not do the same on each computer. I don't know for sure though. But its easy to check if that's the problem:

When the server player fires, does his projectile also sometimes hit himself?

Whatever the case, I think the easiest problem to solve this is just to remove the IGNORE_YOU line and create the projectile a bit futher away from player/block.

Or perhaps send a handle of the firing player on the server to the clients, though the problem here is a small delay before the clients get the handle from the server.

Or or: let almost all of the code run only on the server and only small visual effects like movement and particles effects etc. run on the client. And than only create entities on the server (not on the clients) and remove the projectiles only on the server (let the server send the STATE of the projectile to the clients). This way only the server needs to know the 'you' pointer wink.