I solve the problem creating a class attribute that store FoundMaterial.Object, and moving the DynamicMaterial construction to the BeginPlay() function, but I have no idea about the reason of this strange behaviour, it seems the in-game object could not be correctly re-inizialized.