Overview:
When updating FLS to a field for a Profile or Permission Set, the FLS is read-only and cannot be changed.
Root Cause:
This can occur when a field is marked as Required at the Field level.
Solution:
To change FLS on the field, uncheck the Required tickbox at the field level.
Related Documentation:
SFDC documentation: Field-Level Security