Ever had the situation where, even though you have given permissions to edit nodes to a role, and assigned that role to a user, they still can't edit the node?
Drupal will stop people from editing nodes that use a filter format that they don't have permission to use. So check that the filter in use by the node is available to the user in question.