That sounds most likely to be an issue with the Salesforce CLI, but we can confirm that. When you run "sfdx force:org:list --skipconnectionstatus --json", do you see your scratch orgs listed under "nonScratchOrgs" or under "scratchOrgs"?
As for "--clean" not working properly, there was at least one bug in the past where it would actually corrupt one or more of the ~/sfdx/*.json files. I believe they've fixed that now. You might try a full uninstall/reinstall of the CLI to see if that helps address these issues. Note that on Mac/Linux, a full uninstall requires manual removal of some cache directories:
If those steps are skipped, you can still see issues from a bad/incomplete old CLI install after reinstalling.
Please let me know if that doesn't help.
Regards,
Scott Wells