How to recover backup with damaged dblock file?

That should work. I have not had to do this myself.

I think what happens is that some dindex file is referencing the broken/missing dblock file, which is why it appears as “temporary”. The recreate currently has an issue with trusting the dindex to not have more content than it should, and this sometimes leads to problems where it tries to reference stuff that is not required.

I suggest that you try to remove the broken file, and then run purge-broken-files. It should then discover the missing dblock file and purge all references to it, rewriting files as required. You can try adding --dry-run first, to see what it will do.