For anybody who faces the same issue: the actual reason for this is that the actual replication IS DONE but the RepNotify is called only for the Uproperty changes (in this case it’s an array itself without any content - and it doesn’t change). It is the default behavior if you just declare UPROPERTY( ReplicatedUsing = OnRep …) and specify DOREPLIFETIME(Class, Array) in GetLifetimeReplicatedProps().
To make RepNotify be called each time the array’s content is changed you have to replace DOREPLIFETIME(Class, Array) with DOREPLIFETIME_CONDITION_NOTIFY(Class, Array, COND_…, REPNOTIFY_Always). Pay attention to the last parameter - REPNOTIFY_Always - it tells the network system that you want to receive RepNotifies every time the property or it’s content is changed (in other words the replication package for this property is received).