An easier route that might satisfy your needs is to instead create a base material with a texture parameter and assign a Material Instance with that parameter set wherever you want a new instance of your class.
The code will look something like:
auto MID = SomeStaticMeshComponent.CreateAndSetMaterialInstanceDynamic(0);
MID->SetTextureParameterValue(FName("MyTextureParameter"),MyTextureObject);
If you really want to create a Material (which requires the Editor, and so can’t be done in a shipping game), take a look at UnFbx::FFbxImporter::CreateUnrealMaterial in FbxMaterialImport.cpp. This creates the Material and calls UnFbx::FFbxImporter::CreateAndLinkExpressionForMaterialProperty for each property that it is trying to set.