You don't actually describe what the problem is. Is it not drawing anything? is the texture not showing? is the texture wrong?
Anyway, various things to think about:
As with someone else recently, you have "varying in" and "varying out". Both varying and in / out are storage qualifiers - I'm pretty sure it's not meant to be valid to use both of them. I'd suggest using in / out since varying is deprecated (and I'm not actually sure you can use varying in anything other than vertex / fragment shaders).
I assume "Texture" is a variable containing the location of the sampler retrieved via glGetUniformLocation, and that your BindTexture member correctly calls glActiveTexture and glBindTexture?
Note that you don't have to bind the array buffer as well as the vertex array in the draw call.
You don't appear to be calling glEnableVertexAttribArray anywhere.
Alright I looked into glEnableVertexAttribArray so that's fixed. However I still didn't get anything to show, so i messed with the shader. It seems that for some reason my final value of vec4 vPosition is getting overwritten somehow. If i manually set the height I get a perfect textured quad, but if i try to read it from the incoming vertex I can't see anything.
lol ok, found out the issue. I simply wasn't referencing my position through gl_in instead I was trying to reference through another variable. : P it's working perfectly now.