The UTexture based classes are all specified as MinimalAPI, this stops those symbols from being exported, so you won’t be able to inherit from them outside of the module they’re created in (the Engine module in this case).
You could do your own build of the unreal from source and put your class in the engine module. I’d expect this would fix your issue, but I’m not certain, so others may want to chime in with corrections.
Edit: Another option, which I have just tried and has things compiling (but I don’t yet have a full implementation to say is definitely what you want), is to inherit from UTexture2DDynamic. It’s also marked MinimalAPI, so I don’t know what about it is different that ensures it has needed symbols available. Some of the functions are exported as part of the ENGINE_API, but not all the ones that are marked as missing when inheriting from UTexture2D are there.
If somebody knows what’s happening here, I’d be interested in the details.