Basically custom fields on an existing page inherits the underline page permissions. Lets say one user has write access to one page and then he also gets write access to the custom fields added in the same page. If you need to give them read only access, you have to configure permission for the particular screen as read only.
If your requirement is to allow the user to write other fields in the same page while disabling write option only for this custom field, I don’t think its possible through permission sets and presentation objects securing functionality.
The easiest solution would be to create a custom event.
If it is ok to create the persistent custom field in a different page and then only add it to this page as a read only custom field then you can control security from that different page though. This is not I have tried but lets think of like creating a separate custom logical until to hold your custom field (checkbox) as a persistent custom field. And for the existing page you add only a read only type custom field - you only display its value on this existing page but won’t allow to edit. For the specific users that you want to allow to edit this, ask them to go to that specific page based on the custom logical unit and do the modification from there.