У тебя функция по реализации меняет rva(когда ты передаёшь адрес пролога функции), либо перепиши и измени оффсет, либо юзай такое или минхук
static void RedirectJump(DWORD address, void* foo)
{
DWORD protect;
VirtualProtect((LPVOID)address, 5, PAGE_EXECUTE_READWRITE, &protect)...