We had this same issue as we included an external package from a vendor that interfered with routes. Although your error looks a little different that what we saw. We had to do the following:
When any third-party dlls are referenced in Sitecore, you must configure your MVC application to not resolve third-party dlls unless required. This configuration varies based on how your application is set up (DI, custom routes table, etc). For OOTB Sitecore configuration, as mentioned in the Sitecore configs, please add the assembly names to the following sections in config.
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<api>
<services>
<configuration type="Sitecore.Services.Infrastructure.Configuration.ServicesConfiguration, Sitecore.Services.Infrastructure">
<excludedAssemblies hint="list:AddExcludedAssembly">
< !-- Dlls -->
</excludedAssemblies>
</configuration>
</services>
</api>
<mvc>
<configurationAssemblies type="Sitecore.Mvc.Configuration.ExcludedAssembliesConfiguration, Sitecore.Mvc">
<excludedAssemblies hint="list">
< !-- Dlls -->
</excludedAssemblies>
</configurationAssemblies>
</mvc>
</sitecore>
</configuration>
This section defines a list of assembly name matches to filter out any assemblies that are not required by the IAssemmblyResolver. Assembly names that start with a name within the excludedAssemblies will not be returned in the results from IAssembleResolver.GetAssemblies()
Please note that the above-mentioned configs are OOTB sitecore configurations and may change with new version of sitecore and will not work if you are using a non OOTB DI. Please customize your these settings based on your DI container, if needed.