This issue was reported by a customer trying to modify the static meshes of a GeometryCollection. After removing some meshes from the Geometry Source, he used the Reset button to apply the changes to the GC instance in his level, resulting in a mismatch of materials and remaining meshes.
As a workaround I suggest him to also remove the material of the removed mesh from the materials list. Doing this the problem was solved.
Digging in the source code I think I have found a possible cause of the problem. The function void UFractureToolResetAsset::Execute __ (declared in FractureToolGenerators.h) is called when the Reset button in pressed in the fracture mode. Between lines 863 and 876 in FractureToolgenerators.cpp (in the Execute function), the OldMaterials are copied to the materils of the new GeometryCollectionObject, but this copy is only taking into account the number of materials but not what exact materials it is copying. Maybe this is the cause of the bug, but I have not tested any fix there.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-193258 in the post.