A bit late but just stumbled over this. I had the same problem and looked a bit further into the API. In case you have UseLUT checked in the advanced section of your curve parameter (which it is by default i guess), simply add the following line after setting the curves to update it:
DataInterfaceColorCurve->UpdateLUT();
This did the trick for me!
Alternatively to have even less code try this:
if (UNiagaraDataInterfaceColorCurve* AsDataInterfaceColorCurve = Cast<UNiagaraDataInterfaceColorCurve>(DataInterface)){
AsDataInterfaceColorCurve->CurveAsset = ColorCurveAsset;
AsDataInterfaceColorCurve->SyncCurvesToAsset();
AsDataInterfaceColorCurve->UpdateLUT();
}
Hope this helps.