Double "For Each" loop to update grand-child record

Double "For Each" loop to update grand-child record

Hello all, 

I have three forms: countries > cities > airports. Each child is related to its parent with one to many bi-directional lookup fields. Saying it differently, each city is related to one country and each country is related to multiple cities. The same is true for the cities-airports relationship.

When an update happen on a field on "countries" (the parent), I am trying to update fields on cities (the child) and on airports (the grand-child).

I succeed to update the child using "For Each" loop. 
But I cannot succeed to update the grand-child. 

I've been trying to create two "For Each" loops, one within another and also trying to have cascading "on update" (on parent and on child), but none works.

Could someone please help?

Thanks, 
Adrien