There isn't an easy solution, because this isn't a common thing to do.
The main issue is that real-time control for FPV requires very little lag. Wifi requires several layers of processing, on a computer where it has to compete with other processes for processor time. Your video needs to be encoded and compressed, and still work if some data is missing. Most digital video isn't real-time, and relies on a buffer to smooth out these delays - but you can't fly with images that are a few seconds old.
That said, it's pretty simple to stream video over wifi with a small computer like a Raspberry Pi, and there are lots of guides on how to do it. Similarly there are lots of ways to send other data over wifi - it's just networking, and there are lots of guides on how to use UDP or TCP/IP.
You probably can't use the same computer to actually fly the drone. Again it's a real-time system that needs to adjust the motors hundreds or thousands of times each second. I think you would be best to use a normal flight controller running iNav, and to send it control signals from the Pi, via S-Bus. Effectively the flight controller attempts to hover at a GPS position, and you send it a new position occasionally.
I've not actually done this myself, or even read about anyone doing it, but I suspect it has been done.