GoldenCrystal (./6) :
Ce que tu peux faire pour déboguer ça c'est de générer un assembly "RunAndSave" au lieu d'une DynamicMethod (c'est un peu plus de code, que tu supprimeras une fois ton boulot de correction fini, mais c'est la meilleure façon de faire)
Du coup, tu dois pouvoir aussi y générer des infos de débogage, ce qui peut (ou pas aider) à voir ce qui se passe dans Visual Studio. (Eventuellement…)
Mais surtout, ça va te permettre de passer ton code à peverify.exe qui détecte bien plus de choses que le runtime. (Le runtime fait beaucoup de vérifications, mais il va en sauter quelques unes non essentielles, et puis même si il ne les saute pas, il ne te dira pas toujours précisément ce qui ne va pas)
En parallèle de ça, je t'encourage fortement à passer ta DLL générée dans un décompilateur C# (Oui, ces choses ont une vraie utilité parfaitement légale
) comme ILSpy, vu que ça doit être le meilleur gratuit du moment. L'idée c'est qu'il doit arriver à comprendre ton code IL*, et à te ressortir l'algorithme que tu as implémenté sous forme de C#: ça te permettra de vérifier d'un rapide coup d'œil que tout se fait exactement comme tu le voulais. 
C'est ce que j'avais fait pour Item-sparse.db2, je dois encore avoir la DLL, et tout semblait correct. Par contre, peverify ne voulait juste pas voir la méthode ("... is not visible", alors que c'était une public static), j'avais pas cherché plus loin.