We have a similar drive base as you do. I don't see anything wrong with your code but I know that we switched from the Meccanum Polar method to the Meccanum Cartesian because polar seemed to be giving odd results. (I know it shouldn't matter but it seemed to help us and it makes positioning easier for us).
When you put the robot on blocks and run the code does it still not power all the wheels? It may be that they are all trying to go strait but without some sort of programmed correction they are at such different speeds that it drives diagonally. Wheel slip with an omni holonomic platform is really hard to remove completely with a mechanical solution.
We corrected for this by getting field centric control working with the gyro. Without that our drive base becomes much harder to control. The gyro is able to control our angle and keeps our heading. If we do drift off of strait the driver has a much easier time correcting because he only has to correct one axis (the X axis if we are trying to drive strait forward).
This is a link to our code repository. If you have any questions please ask.
Our Code
We are also attempting to get Velocity control working but haven't been successful yet because our encoders have been giving us some problems.
Hope this helps and I look forward to seeing you at Alamo,
Allen Gregory