Salesforce record access is a complex and layered topic. You need to get a thorough understanding of the underlying mechanisms in order to effectively debug this type of issue.
The Data Security Trailhead module may be useful.
If the user's profile- and permission set-based FLS settings allow them access to this object and field, the next step is to determine the user's record-level security settings (presuming that the Organization-Wide Default is not Public Read/Write).
Every record has an owner, which is typically displayed on the record page. The record owner has edit permission on the record and absent some other factor would be able to change the record type.
If the user in question is not the owner, they have access to the record for some one of a large number of potential other reasons, which in this instance does not include edit access such that they could change the record type. These reasons could include sharing rules, the role hierarchy, access to the parent Account, manual sharing, and others. You can get a summary of the user's record-level access by selecting the Sharing button on the page layout.