COM error on UnionAggregate
I've found that this issue seems to be a problem with the number of rows I was attempting to aggregate.  I get errors when aggregating over about 5,000 rows, but don't get errors (well, the same error, anyway) when aggregating less than that.

My solution ended up being to segment and aggregate the rows using ROW_NUMBER, then aggregate those groups, as in the following:

select
    geography::UnionAggregate(GroupGeography)
from
    (
        select
            geography::UnionAggregate(ZC_Geography) as GroupGeography
        from
            (
                select
                    *,
                    ROW_NUMBER() OVER(PARTITION BY 'dummy' ORDER BY ZCG_Zip_Code) / 1000 as ZipGroup
                from
                    tblZipCode
            ) a
        group by ZipGroup
    ) groups