The issue is how you’re feeding the texture into the Custom node. You need to pass it as a Texture Object (not a Texture Sample). In the Custom node, add an input with type Texture3D — that’s what the tony.SampleLevel(…) call expects.
If you’re using a Texture Sample instead, the node receives already-sampled color data, not a texture resource the HLSL code can sample from with custom UVs.
Also, since the original LUT is a 48³ 3D DDS and you converted it to TGA, the volume texture data may have been lost in conversion — TGA doesn’t support 3D textures. I’m not sure about the best way to handle this in UE4, but you’ll need to make sure the texture is imported as a Volume Texture for the Texture3D sampling to work.
For the input color (stimulus), make sure you’re reading from PostProcessInput2 (not 0) — this gives you the scene color before engine tonemapping is applied, which is what you want for a custom tonemapper.
So the setup should be:
stimulus input ← SceneTexture: PostProcessInput2
tony input ← Texture Object (your imported LUT), with input type set to Texture3D, imported as a Volume Texture