From what I have seen, I think gaara would win, though it would be a very long and drawn out fight.
Lets first look at yamato's wood release. He has been shown to create wood domes that could protect against shock waves and create forest etc. Gaara's sand tsunami in both the manga and the anime was shown to be smash through and crush many trees and cover a large portion of a forest during the gaara v kimmimaru fight, plus it's pretty large scaled so it w would easily overpower the wood dome. Also, gaara can rise above any forest created by Yamato no matter how fast he grow them. When madara used the advent of a world flower trees, the forest was grown INSTANTANEOUSLY, and his sand cloud managed to react to that and lift him in the air before it grew. Plus gaara himself has speed and reaction time to, in a second, create a empty sand shell, and move to the ground while lee was performing the primary lotus.
Onto yamato's water release. Gaara was shown to be able to manipulate sand regardless if it is drenched in water, shown during the fight with the mizukage and when the dust/lightning/water/sand combo that was used against madara. Yamato's earth can become sand easily, all gaara has to do is breakdown the minerals in the earth technique and make it sand.
Also, with shield of sand and armor of sand, I don't see how Yamato can break through it. The shield of sand withstood the meteor, fast enough to block Amaterasu, blocked explosions which are supposed to be instant, took 5 susano'o swords to break through, defended against joule boy, defended raikages kick which was augmented by lightning armor and the gold dust pillar which was supposed to be heavier than sand. Then the armor of sand which would more than likely have gotten improved, withstood hidden lotus, which would normally rip his head of and make his insides like jelly. I can't see Yamato breaking through it no matter what he did.
All in all, I give it to gaara not because he is my favorite character, but because gaara is undoubtedly stronger than Yamato.