Are you running with both our package (google-compute-engine) and irqbalance?
If I remember, there is a possible race condition where- due to startup ordering- irqbalance would run first and then our script ran afterwards. In other cases, it was the opposite. I believe in Ubuntu it was always broken just due to dependency differences. Also, irqbalance has a one shot mode and a daemon mode (I forget which is default). If its one shot, and it runs before our script, it won't matter because we overwrite it. If it is daemon mode it will reset the interrupts each time it runs (there is some default- I forget what it is).
If however you remove our package entirely, and let irqbalance run, you will see that it "balances" all the interrupts to CPU0.