How can I set a UNiagaraDataInterfaceColorCurve from a color curve asset?

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.