I could start with a question of how often a PM deletes a filter, but I assume that to be an example only. Without Project Server there really isn’t a simple way to lock a view. But, one thought to consider that has two parts:
1. Have all your PMs save the views, filters, groups, etc. in their global instead of just in their project. That way they get copied, but if they get deleted then Project just copies it back again next time it is accessed.
— Now, I realize that doesn’t solve the problem of someone changing a view/filter/whatever —
2. A next step might be to create a macro that executes on open that deletes the associated views, filters, groups from the project. That way, in combination with step one, the project will always start with the standard items.
I’m not a VBA/Macro expert so I can’t help you much with that, but I think it will work assuming it can be done. Hope that helps…