The initialization vector is a salt - it's a random string that makes different encryption sessions uncorrelated and this makes it more difficult to crack the encryption/decryption key. By definition, the salt/iv influences the output of the encryption algorithm, and also the output of the decryption algorithm. By changing the IV in the middle of an encrypt + decrypt, you are essentially corrupting your decryption process and you were fortunate not to get total garbage as a result.
While the initialization vector does NOT have to be secret, it DOES have to be different for every new piece of plaintext that is encrypted, otherwise the ciphertexts will all be correlated and an attacker will have an easier time cracking your encryption key.