I suggest to try /32 for virtual IP. Unlike rmmccann, I had the opposite problem in the past, things did not work well with virtual IP having /24 netmask (same as real IPs), but everything was always fine with /32. I'm not sure what was wrong. All sources just say that it must be /32, period. And no explanation why. The tricky thing about this is that it appears to work just fine even with non-/32 mask most of the time.
I played with it yesterday for a while and I managed to have both routers running as masters, but as strange as it may sound, I was not able to reliably tell why. It probably has something to do with the fact, that master router has same subnet available on two interfaces (real and virtual one) and I guess it probably under some circumstances somehow confuses something. Great explanation, I know.
If someone has any better, I'd be interested to hear it.