Esto se debe a que el programa utiliza validación por internet, es decir utiliza el serial que haz introducido o contraseña y esta es enviada a través de de la cabecera http post por lo que enviará el serial y el servidor responderá con la confirmación si el serial es correcto o incorrecto, una vez devuelta la información el programa toma los datos devueltos y pasa por el punto de bifurcación entre un serial valido y uno inválido. En cuanto a la modificación de datos pueden haber muchas posibilidades, algunas de ellas puede ser que posteriormente realiza una comprobación de números de caracteres o algún requerimiento: "-", letras entre otras cosas y en el cual si no se cumplen directamente se dirige al procedimiento de un serial incorrecto, otra opción puede ser que ya que la DLL ya fue cargada (LoadLibrary) no debes guardar en el path de la dll original ya que no podrá ser sobre-escrita produciendo que los cambios no se hayan guardado, pudiendo ser este tu caso, es decir la guardas en desktop por ejemplo cierras el depurador, la insertar en el path correspondiente, sobre escribes y pruebas.
PD: realiza un back-up de la dll a modificar para evitar la reinstalación del software ya que quita mucho tiempo.
Saludos


.