One thing is (as you can see) UV Projection modifier generates smaller image in front side to closer camera and bigger image on opposite side due conical shape of projection from point - so distance of camera matters.
In this case I would suggest to use Texture Coordinates > Object and use another object like Empty to control position. To position it smoothly around surface - enable Snapping > Face with Align Rotation to Target.
To prevent appearance on opposite side - use Empty's Z coordinate and clamp it with like Less Than node and use it as a mask for back part of a mesh.
Note: If you are still interested in projection technique see Rich Sedman's answer he used OSL script in shader to free back faces from projection. Blend file included (seems to me quite complicated, probably could be handled better in these days, but it is over my knowledge so I can't help with that).