This is not something related to Mono.Cecil library. This is related to how the CLR will search for the assembly. The assembly name is written into the metadata of the assembly, and the CLR will look into the metadata to find the assembly. You can test it easily by just renaming your assembly from SourceDLL.dll
to SourceDLL2.dll
and then referencing to the renamed assebmly (Mono.Cecil is not involved!). You can see that you'll get the exact same exception.
To make it work, you need to change the assembly name before writing it:
var assembly = AssemblyDefinition.ReadAssembly(assemblyPath));
assembly.Name.Name += ".Patched";
assembly.Write(assemblyPath.Replace(".dll", ".Patched.dll"));