Material uniform properties are per Material. If you want to disable the PS1 effect with a uniform, then you'll need to go through every ShaderMaterial and then disable it there. If meshes share the same Material, then they will all share the same uniform modifications.
Inversely, if you want to have uniform settings that are different on a per-mesh basis, then each of the meshes will need their own Material.
From a performance perspective, as long as you are not modifying the material uniforms too often, it is probably fine to modify them in script. Especially if you only modify the shader once or a few times, the performance loss is likely to be minimal and would only last a few frames at the start (which could be hidden with a loading screen). For the enabled uniform, I would either have the meshes enable/disable it through code, maybe reading whether it needs to be enabled or disable via a Singleton/Autoload.
I'm not sure if using a second pass shader would work, as I think each pass leads to another draw call and essentially duplicates the mesh visually. I could be completely wrong though, so it may be worth a try.