You can also pass the effect in Begin:
spriteBatch.Begin(DeferredMode, Blend, LinearWrap, DepthNone, RasterState, tree_fx);
Regular texture is passed by draw call and additional textures would be added by passing as a parameter.
Custom Shader Texture declaration may depend on Shader Model being used.
Texture2D<float4> Texture : register(t0); // <-- t1 for texture 2, t2 for tex 3, t3, etc...
sampler TextureSampler : register(s0) // <--s1 for sampler 2, s2, s3, etc...
Texture = <Texture>; // <Texture> passed as parameter for second texture if using
AddressU = clamp;
AddressV = clamp;
MinFilter = linear;
MagFilter = linear;
It'll keep the regular SpriteEffect.fx vertex shader if you only replace the pixel shader. Likewise you could give it only the vertex shader or could switch out both in the fx.