From my Android experience last summer, the key thing is to transition off any local iCal calendars, and use CalDav to talk to your calendars on Google.

Once you get the initial setup done for the first calendar, additional calendars must created on the Google Calendar site. For some reason, the CalDav interface will always throw an error when you try to create a new calendar in iCal. I'm guessing Google didn't implement that feature. Once added on the web site, go back into iCal, under accounts, then the Delegation tab. Any new calendars from the web will show there and can be checked to appear in iCal.