As you mentioned, when creating a custom role from an existing role, some permissions cannot be replicated. The reasons as indicated in the page:
Not supported in custom roles (supported only in predefined roles)
These permissions cannot be added to custom roles. Instead, you can grant predefined roles that contain the permissions you need. For a list of predefined roles, see the documentation.
Not applicable for project-level custom roles
These permissions can only be added to custom roles at the organization level; they have no effect at the project level or below.
Not recommended for production use
These permissions might be changed in backward-incompatible ways and are not recommended for production use. They are not subject to any SLA or deprecation policy.
The latter simply means that the permissions may change or stop working at anytime, and theoretically if they are part of your custom role, and if deprecated, your users may have issues accessing the resource needed at the time without (you) being alerted. Furthermore, and after the sudden issue, you may have trouble pinpointing the permission causing it. Thus, “not recommended for production use” and only for testing. On the other hand, predefined roles get automatically updated, so if a permission gets deprecated, the necessary alternative for accessing the same resource is added.
As for the issue you are encountering and checking the iam.serviceAccountUser role permissions below, the first permission "iam.serviceAccounts.actAs" is not supported in a custom role. Hence, you need to add the predefined role to your gmail account.
iam.serviceAccounts.actAs Not supported
iam.serviceAccounts.get Testing
iam.serviceAccounts.list Testing
resourcemanager.projects.get Supported
resourcemanager.projects.list Non-applicable
I hope this helps.