How do I force the delete of users from my database?
It seems the user that you are trying to drop has played a role of grantor and hence you need to revoke those accesses before performing drop of user.

Try running below command to get details of grantee first:

select                     
     permission_name,                     
     state_desc,                     
     object_name(major_id) as securable,                     
     user_name(grantor_principal_id) as grantor                     
from sys.database_permissions                     
where grantee_principal_id = user_id('User Name to be dropped')    


Next will be to find details on grantor using below:

select *                     
from sys.database_permissions                     
where grantor_principal_id = user_id ('User Name to be dropped');     


Basis result what you get from above query, you need to perform one of below:

REVOKE VIEW DEFINITION ON USER::User Name to be dropped TO public                    
REVOKE CONTROL ON USER::User Name to be dropped TO public                    
REVOKE ALTER ON USER::User Name to be dropped TO public    

REVOKE ALTER ON USER::User Name to be dropped TO *grantee*            
REVOKE CONTROL ON USER::User Name to be dropped TO *grantee*            
REVOKE VIEW DEFINITION ON USER::User Name to be dropped TO *grantee*     


This is just a possibility, there could be some other type of access which has been granted. so, you need to check the same and execute revoke accordingly.

You may find more of these examples from below forum:

https://ask.sqlservercentral.com/questions/24721/the-database-principal-has-granted-or-denied-permi.html

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/07b40291-6c4d-427e-a5e2-568df482c550/drop-user-fails-with-quotthe-database-principal-has-granted-or-denied-permissions-to-catalog?forum=sqlsecurity

https://stackoverflow.com/questions/41817820/how-to-solve-sql-server-error-15284-the-database-principal-has-granted

Hope above helps.