Hi,
a parameter becomes read-only if it is driven by another one.
For example, the user can define a key/value table in which a user parameter drives the "Comments" parameter.
In this case, you cannot set the comment.
In Revit 2017, there are also GlobalParameters which can drive other parameters.
Revitalizer