NOTE: i was doing tests, while writing this post, so i had to rewrite the whole post any way, but still might be a little "not chronological"
Ok, i did testing with notifications, and results are not as i expected, pleas confirm correct behaviour:
Citty attack
When i get gold bonus, i get it in each city, but from third attack, not the second..
I explained this below, the functions you are using, use scaling with game speed, so iGain for first attack that should give u some yields become 0,7 on quick and 2 on marathon..
Obviously 0,7 to my understanding is casted on Integer so it become zero, thus, you get bonus on 3rd attack not 2nd on quick game..
On the same time, you get 2 culture instead 1 on marathon, but correctly on second attack..
Unit Attack
Also, i get bonus from third attack(quick game), not from the first/second () and i get 1 culture for only one city, the one that produced unit gets the culture bonus..
I can confirm this by looking at other cities accumulated culture for border, the other cities just didn't got any..
I assumed, maybe wrongly, it should work same as with city attacking bonus
UPDATE1: Ok i tested it by setting local iGain to "(pAttackingUnit:GetMultiAttackBonusCity(pCity) / 1" (1 instead of 10)
And the second attack gave 7 gold and 3rd gave 15 gold..
Initially i suspected some rounding problem but 7 could meant only one thing

So it means, this value you are using is probably scaled with game speed, but on the same time, the value shown in dmg calculator for multiattack, is
calculated differently, since multi attacks are always multiples of 10.. So this explains why i got bonus from the 3rd attack on "quick game'
UPDATE2: On marathon i got 20 culture with setting "GetMultiAttackBonusCity(pCity) / 1", so with setting /10 on maraton you would get 2 culture instead of 1.
But also on marathon, second attack show "multi-attack" bonus as 10%.. so somebody is lying here, since, one of calculations is scaled with game speed and other is not

My quick quess you should so something like:
local iGain = (pAttackingUnit:GetMultiAttackBonusCity(pCity) / (10 * gameSpeedFactor))
The questiuon is, how game is doing it since all multi attack bonuses seems not affected by game speed, unless they really are, just the tooltip is lying
UPDATE3: Your wording regarding culture yields may be interpreted to work same way as cities, meaning, should give culture in all cities, while your code "speaks"
like you planned it to be yields for one city.. Imo, if you plan those yields to be just for one city, it should be more, maybe like at least 2-3 and scaled with era..
Since even now if you scaled with era, and assuming you have like 3 subsequent attack additional 6 culture in atomic era seems just silly, unless, you wanted to
scale it with number of cities, then if you have like 10 cities it will become 60 culture, which seems suddenly not that terrible..
But then again, during my testing i found that, usually you wont be able to inflict more then 3 subsequent attacks (4 attacks total) on a single unit, from one trivial fact.. unit will simply die

So maybe all those subsequent attack should kinda scale exponentially? But then you will stuck in stupid situation, that you want to hit unit, but prefer not to kill it, since you will lose culture
