I don't have direct experience with CryptoJS, but many years of experience with a variety of other crypto libraries. It's almost certainly the case the CryptoJS.AES.decrypt expects a different ciphertext format than the one you're using. Your ciphertext is the contanenation of two separate Base64-encoded entities:
Base64(IV) + Base64(Enc(Message))
If CryptoJS.AES.decrypt expects the IV to be specified as part of the ciphertext (which it may not), and expects Base64-encoded ciphertext input at all (which it may not), then I would try passing:
Base64( (binary IV) + (binary Enc(Message)) )
Looking at the CryptoJS doc, I share your frustration with it. But there's an encryption example with "manually specified IV" that may provide a clue.
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
<script>
var key = CryptoJS.enc.Hex.parse('000102030405060708090a0b0c0d0e0f');
var iv = CryptoJS.enc.Hex.parse('101112131415161718191a1b1c1d1e1f');
var encrypted = CryptoJS.AES.encrypt("Message", key, { iv: iv });
</script>
Sorry I can't be more helpful-