Bogard is the one who opened the gates.
Put the situation in another context, Garp is a marine who doesn´t believe in the absolute justice and perhaps he abandoned his position as an admiral because he was against all the stuff that the marines did for the world government but his loyalty to the marines made him to stay as a vice-admiral.
According to Oda Garp is a marine from the head to the toes and if you use the brain this war is nothing more than a stupidity from the Gorousei where not only Ace will die but the marines will be highly decimated even if they win the war.
Marines original strategy is this:
1. Close the gate of justice and block the movement of Shirohige armada.
2. Surround hirohige armada with the 50 ships and provoke a lose of time for Shirohige, the 50 ships would lack any opportunity to win but the marines will make a lot of time.
3. With the achieved time kill Ace easily.
Why are the Shichibukai in the island instead of the ships?
When Ace will be executed Sengoku would say that the end of piracy has ended and the Gorousei will put an order saying that the Shichibukai title has been revoked for all them, then the 3 admirals, sengoku and the most powerful part of the navy will go against the Shichibukai and capture them or kill them.
Remember that Sengoku hates the Shichibukai.
Garp is the saboteur because he believes that the entire plan is a stupidity, the fact that they are sending 50 ships and their marines to their death only for the the absolute justice must be something disgusting for someone like Garp who doesn´t believe in the stupidity of the absolute justice.
With the Gates completely opened the pirates won´t be surrounded and they will be able to take land without decimating the ships from the navy, a lot of the pirates that are allies with Shirohige will be easily wiped out by Vice Admirals, Shichibukai and the Admirals.
Garp isn´t making this for helping Ace only, he is doing this for saving the life of thousand of young marines.