There is no single answer to your problem - you may want to focus more on a strategy for solving your problem, rather then looking for "some software" to get it back for you - particularly as you mentioned the word "Linux".
A possible strategy - if you have the disk space available on a clean disk might be to -
1. Use GNU ddrescue to copy as much of the data as possible off the
failing drive to a new image/drive as possible.
2. Make a copy of the new image/drive and try recovery on that. If your attempt
fails, make another copy and repeat...
On a clean copy, the first thing I would do is run a chkdsk (or fsck.vfat) to repair the filesystem, and then copy the data. (I expect that the problems you are having will be corrected accessing the available data will be solved with an fsck)
If that fails I might try photorec or testdisk or other software.
I would not use WINE - either I'd use a PC with Windows or a PC with Linux, but not a PC using Linux pretending to be Windows, as you really want to get as close to the filesystem as possible, and abstraction can only get in the way.