The Managed SimConnect DLLs aren't in the WinSxS but instead are in the Global Assembly Cache (GAC). They are versioned within the GAC similar to the WinSxS though.
Instead of looking for specific DLLs, you instead provide an AssemblyName class object with the various bits of info about the assembly you want to load (name, version, public key, etc). You can get a list of the installed managed SimConnect libraries and the info needed to fill the AssemblyName object with the following DOS command:
gacutil /l | findstr /i simconnect
if you have RTM, SP1, and SP2/XPack installed, that will give you the info for all the available public versions.
As Jon mentioned, doing dynamic assembly loading works best when the objects within the assembly are based on an Interface definition, which unfortunately the current SimConnect stuff isn't. Without Interfaces, you have to do a lot of Reflection based stuff to get the needed types, instantiate objects of those types, and get method delegates to functions within those types, and then call the methods via the delegates.
The multi DLL method mentioned earlier might be easier to deal with, as each version specific DLL could use the normal ways of dealing with a class object within the DLL itself and provide a known Interface based API to the calling app.