Не в том же месте, я думаю, вы имеете в виду в другом месте файловой системы, дайте мне знать, если нет.
Лучше использовать System.Assembly.Load, так как это общий низкоуровневый загрузчик сборок.
Также вы упомянули о желании загрузить разные версии. Для этого вам нужно будет настроить вторичный AppDomain для загрузки сборки, затем выгрузить этот AppDomain, когда вы закончите, и создать новый для новой версии сборки, так как .Net не поддерживает выгрузку сборки из заданного AppDomain.
CreateInstanceFromAndUnwrap предназначен для загрузки кода, который каким-то образом был «отправлен» вам, поэтому все, с чем он работает, должен быть сериализуемым.