I know there are 'on open' trigger which you might be able to use which can lock field value for you on open. It should work even when the data change, but you need to be consistent with what selections you want in that particular list box. What are you hoping to lock down???
I am hoping to lock down the status of 'Closed Work Orders'. Any but code other than '10-8015*','10-8025*' and '10-8030*'. Finally but Custom Category field '10-8025........." The first picture shows the fields that I want to lock down.