Как загрузить две сборки разных версий?
На net framework ты можешь динамически загрузить разные версии сборок в один AppDomain, если они имеют строгое имя (с publicKey) и имеют разные номера версий.

Если какая-то из сборок или обе не имеют publicKey, то тогда ты можешь динамически создать новый AppDomain и загрузить сборки в разные домены.
Но тогда вместе их использовать не получится.
https://stackoverflow.com/questions/20686362/c-sha...

Ещё, если вдруг это какие-то зависимости у тебя требуют разные версии библиотек - ты можешь сделать так называемый binding redirect

А на net (core) ты можешь использовать AssemblyLoadContext из ответа 0x25CBFC4F
Создать проект рядом. И к нему другую версию подключить. И дергать через него