Thanks for the details.
My recommendation would be to slow down some of your mid-week runs. Going that hard 4 days a week is not the most ideal training. Especially for ultra distances. I'm also basing most of this off your 20 minute 5k race.
Do you have more time for mid-week runs? Or are those lunch runs and that is all you can fit in?
If you have more time, I would consider something like this:
run 1: easy 7.5 miles shooting for 8+ min miles
run 2: 5 mile loop with the middle 3 miles trying to hit 7 min pace (super easy warm up and cool down)
run 3: same as run 1
run 4: warm up, then run 20 to 30 mins with 1 minute hard/1 minute easy, cool down, that could be 2 or 3 laps of your route
On the weekends, go long and easy.
If you don't have more time for any of the mid-week runs, the above could still work. Make one a tempo-ish day and the other a fartlek day, and then just go easy on the other days. Right now you have almost no easy days. That's the kind of thing that could lead to a pre-race injury, or a big race blowup as running like this could lead to some burnout.
You're spending a lot of time really close to your 5k race pace. If it is working for you, my guess is that your 5k is ultimately a bad time for you, and in a short while you will see a lot of improvement. BUT, that improvement will only come with varied, and smart, training plans. There are a ton of good training plans out there. I would recommend searching for Hal Koerner's 50k training plan. It's for a slightly shorter race than yours, but it will give you a good idea on how to set up your mileage and how to balance your harder and easier runs. I don't suggest you follow it (or something like it) to the letter, as you are probably not ready to bump up your mileage just yet. But it should prove to be a good read.