I've been working with a similar issue for a couple of months now and here is what I have found. I may be doing something wrong in which case I'm happy to hear of another approach.
The object files output by the Microsoft C compiler (CL) can have duplicate section names in them. This is something that slink (32 bit) does not like at all and it exits with an error. I can't remember if the 64 bit Slink64 does the same but we need both 32 and 64 bit builds which consume external C++ libraries which means we can't use slink.
What we have tried to do now is use the Microsoft Linker (Link) to link the C++ object files to those object files output by ftn95. This works up to a point, the object files generated by ftn95 do not have their functions available as exports (this is normally done by slink, but we are unable to use it) so the Fortran code cannot be seen by the C++ code. But the C++ code can be called by the Fortran code. This may work for you.
To get your C++ libraries linkable, you may have to exclude a lot of conflicting compiler generated code such as stack probes / checks, security cookies and turn off all access to the standard C libraries as they conflict with the Salford library functions (printf for example).
I'm investigating whether I can merge the object files generated by FTN95 with slink / slink64 and export everything in a standard COFF2 format link file now. If so, this should help us finish out 64 bit port.