The 12 x 400 workout is not very useful. Drop it, or do it at most once or twice a month to maintain mile to 5K speed.
Your mileage is probably fine.
Your long run is fine, but it's not highly specific to your goal race. Once or twice a month is enough.
A 20-minute tempo run at 6:25 is fine. If you're doing everything right, it suggests you race a 5K around 18:40 and a 10K in the high 38 minute range. Which is, more or less, exactly what you're doing. So the question you have to ask is: what are you going to do with this workout to increase your fitness? You could extend the distance. Or you could add 5 minutes at 10K pace directly onto 20 minutes at tempo pace. Lots of other things you could do, too, but you need to change something every week or every other week to give yourself a new stimulus.
What you're really missing, though is 10K-specific work in the form of long intervals (800-3200m). The volume of what you're doing looks like it's about 3 miles in your current workouts. For a 10K, you'll need to push that up to 4-6 miles.
But NOT ALL AT ONCE. Say you decide to start with 3 x 1 mile at current 10K pace (if needed, after 6 x 800 and 4 x 1200). 1-2 weeks later, try 3 x 1.25 miles. Then 3 x 1.5 miles. If you're pushing the interval distance, take the rest duration and pace more by feel. Don't force super-short rests and a faster pace if you're not feeling it. You're pushing the volume, that's it. Can you make it all the way to 3 x 2? Maybe, but maybe 2 x 2mi + 1 mile is enough.
Push your workouts out a bit each week. Recover on your easy days. Maintain your mileage, general endurance and top-end speed. There's no need for anything fancier than that for where you are right now.