You could very easily figure out what's happening by copying a neutral email address (or your iCloud address) on each mail.
Either all three messages get to the CC address or not. At that point, assuming iCloud is delivering, you could inspect the mail headers and determine if iCloud is sending the mail appropriately.
At that point, you would open a support ticket with either iCloud (if all three do not get sent) or with Google (if all three do not arrive in your account) and provide them the Message-ID that iCloud generated for each problematic email as well as the date/time It passed through the iCloud relays
Received: from mail-relay-03.basecamp.com (mail-relay-03.basecamp.com [220.127.116.11])
by spool.mail.whatever.net (Postfix) with ESMTP id 412011162EA
for <firstname.lastname@example.org>; Wed, 3 Apr 2013 15:33:01 +0200 (CEST)
Received: from jobs-01.sc-chi-int.37signals.com (bigip-floating-public.sc-chi-int.37signals.com [10.10.0.20])
by virt-gw.sc-chi.37signals.com (Postfix) with ESMTP id 071654440F
for <email@example.com>; Wed, 3 Apr 2013 13:33:00 +0000 (UTC)