though I thought of handling the AppDomain.CurrentDomain.AssemblyResolve event and load my assembly with a path of my choosing.
Finding out whether the app is running as x86, x64, arm with GetType().Module.GetPEKind(out pek, out ifm);
I mean you need to run your program under the debugger to trap exactly where the error occurs, what the error is, and what variables, pointers etc. are possibly causing the fault. Without that information it is impossible to guess what may be going wrong.