Your game uses Unity, thus IL, thus code compiled when needed. The reason these are not always constants..
CraftingWindowController:OnCraftButtonClicked+11f - jl CraftingWindowController:OnCraftButtonClicked+26b
..is the compiled code might use optimizations.
1) Try to write down that piece of code on every 5-6 runs of the game and see what and how it changes when you check it out in Memory View.
2) Check my script for BattleTech; I'm using a method to get to the prologue of the function (where it starts), then scanning for stuff inside the function to pin-point the location of my hook
Might work for you as well.