at this point in time the recovery strategy in your staging environment is a multi steps process:
Do a backup of all the Custom resources (CRs) directpvdrives.directpv.min.io, directpvvolumes.directpv.min.io , `directpvnodes.directpv.min.io. Be aware, I mean the custom resources, not the CRDs:
kubectl get directpvdrives.directpv.min.io --all-namespaces -oyaml > drives.yaml
kubectl get directpvvolumes.directpv.min.io --all-namespaces -oyaml > volumes.yaml
kubectl get directpvnodes.directpv.min.io --all-namespaces -oyaml > nodes.yaml
From the YAML's remove the deletetion timestamps
Let the deletion of all CRDs contine by removing the Finalizers
Re-install directpv operator
helm install directpv . -n directpv
Please notice the best is to not specify a namespace for the chart install and let it be installed in the default namespace, the chart creates his own namespace as part of the resources, so the argument -n directpv --create-namespace conflicts, probably is the problem you noticed.
Re-create the CRs
kubectl apply -k drives.yaml
kubectl apply -k volumes.yaml
kubectl apply -k nodes.yaml
This will re-sync the PersistentVolume(s) within DirectPV with the CR's that manages them
When ready for production do not perform helm uninstall