Ohne zu wissen, wie du da genau hookst, lässt sich das wirklich nicht sagen.
Manche Programme und DLLs ermitteln die Einsprungsadressen ihrer Importfunktionen einmalig beim Starten und sprechen diese Funktionen dann später über ein Call an (unter Umständen mehr Geschwindigkeit). Hookst du über IAT, hat die DLL sich evtl. schon vor dem Ändern der Pointer die Adressen für ihre Funktionen geholt.
Mit
TNT könntest du ja mal schauen, ob deine Pointer oder OP-Codes richtig ausgetauscht wurden.
Desweiteren gibt es auch ein paar sehr wirkungsvolle Methoden, Usermode Hooks einfach zu umgehen und damit auszuschalten.
Gruß
AHT