Google style interviews are about being able to solve and code the solution to small, well defined problems quickly and correctly. This is really only tangentially related to being a good software engineer, where problems are not very small or well defined, and you are often working with large, complicated existing code bases. The interview process is not a great measure, it's just the best thing Google has come up with.
On the other hand, the interview process is basically the same exact thing that Topcoder is testing.
I had a high GPA from a probably not quite top 50 university (Rutgers) and got into Google. I saw a friend of mine with a perfect 4.0 GPA get rejected. I am sure you have the aptitude to get hired, you just need better luck or better training.
One of the things that gets passed between interviewers is sheet of paper listing the questions that were asked by the previous interviewers. If I note that the previous interviewers have asked a lot of coding questions, I'll often assume that those interviewers have already covered that, and will ask questions that are more centered around design, and how the candidate goes about thinking about a bigger picture problem.