Issue with NewObject

Hello,

I am having trouble understanding what I am missing here. If I call

auto asset = grooms.Add(groom.Key, groom.Value.Get());

where groom.Value is a SoftObjectPtr<GroomAsset>, everything goes fine and my characters have hair. The only trouble is that since multiple characters use the same groom asset, I cannot change material on the groom for individual characters. If I replace the above line with

auto asset = grooms.Add(groom.Key, NewObject<UGroomAsset>(owner, NAME_None, RF_Standalone, groom.Value.Get(), true));

so that i can manipulate individual copies of the grooms independently for each character, alas this way the groom just does not render. This is the only line that changes, the owner is legit and alive, the asset pointer is legit and alive at least until asset is reparented to have the proper GroomComponent as outer, so I am at a loss of ideas. Can anyone spot what am I doing wrong/missing? bCopyTransientsFromClassDefaults can be either true or false with no visible effect.

Thank you.