When you view the System Locks, what do you see for the lock expiration for that case? (Not sure what version you are using, in Pega 8, you can navigate to Case Management > Tools > Work Admin > All Locks to check the locks.)
When a user tries to get a lock, are they getting an error or are you just seeing that it hasn't been cleared from the pr_sys_locks table? If it is just that you still see it in the pr_sys_locks table, the default for clearing expired records there is 3 days.
There is a pzDeleteExpiredLocks activity run by the ClusterAndDBCleaner agent and the pyClusterAndDBCleaner Job Scheduler (Pega 8). This just clears the expired items. The existing expired locks should not prevent a user from getting the lock. I would need to see a trace to be able to offer more assistance so you may need to open an SR.