Trinity Rescue Kit has a utility called
ntfsundeleteall which is described as
a simple wrapper for the utility 'ntfsundelete' ... it prepends the
original inode (=internal number for the file on the filesystem)
before the filename, so you always have a unique filename. It's up to
you to rename the files afterwards, but at least you have the original
name in the recovered filename.
You can use it by downloading the TRK disk and booting from it. Unfortunately I haven't been able to find the source of this wrapper script. It's not hard to imagine a bash script which would create folders based on the iNode names reported by
ntfsundelete --scan, maybe even make optimistic guesses about files and folders based on consecutive iNode numbers... But it's hard to write it, and I can't find anybody who has.