Hey man, I was right where you were two years ago. Similar age, similar build, and I had a nice weekly routine. My times were even comparable to yours. But I started to get frustrated because I stopped progressing after a few years. So here are my thoughts.
I think your times are decent and consistent with your training. It seems like you have progressively increased your mileage over the past 5 years and have seen a performance boost as you ran more. No shocker there- you run more you get faster. Now that you have held a consistent mileage and training format for the past year you feel like you have plateaued. Well, think about that. You haven't run more or changed any component of your training- of course you have plateaued!
So, how to get to the next level?
1) More miles. Even if you run them at the same pace you are doing now you'll most likely see a performance boost.
2) Speed work? Eh, it cant hurt but as 'do try this at home' noted your 5K is better than your 10K which is better than your HM so I don't think a lack of speed is holding you back. I'd even go as far as saying that your 5K time is quite good considering your training. More likely it is your lack of endurance and Lactate Threshold that is holding you back in the longer races. Its easy enough to improve though. To improve endurance lengthen your long run a bit. 10 miles is adequate for 5K training but borderline for 10K and too short for HM. Also, pick up the pace on your long runs. I really like starting them out at a conversational pace and slowly pick up the pace to the point where the second half is a bit uncomfortable. Not panting out of breath uncomfortable, but you should feel like you are working. Long runs shouldn't be easy miles. I think the best way to improve your Lactate Threshold are standard tempo runs (20 - 30 min at Lactate Threshold) or cruise intervals (5 x mile at Lactate Threshold). You can get fancy with some other stuff but these workouts are very straight forward. In case you are not familiar with the terminology, your Lactate Threshold pace is the pace you can hold for an hour under race conditions. Plenty of online calculators can help you find yours.
3) I think the number one thing holding you back is your lack of periodization. I could be completely off here but from your post it seems like you run the same routine week in and week out. Pick up Faster Road Racing by Pete Pfitzinger or Running Formula by Jack Daniels and school yourself up a bit. The basic concept of periodization is that you focus on different components of your fitness at different times of your training.
On a personal note I am a big Pfitzinger fan. Two years ago I was a 45mpw with a 18:20 5K and 39:00 10K. The first training cycle produced a 2:56:10 marathon, the second a 1:20:30 HM, the third a 35:40 10K, and the fourth 1:17:10 HM. All training cycles peaked around in the low 70mpw.
I follow 22 week training cycles. The first two weeks are super low mileage immediately following my goal race. It's a mental break and I usually treat myself with a vacation during this time. The next 8 weeks I build back up hitting 3 key runs a week- A tempo run, a speed or hill day, and a long run. I don't run any of these runs particularly hard and I shuffle the days around at will. If I want to run a race I'll treat it as a tempo run or just do a big warm up/cool down and call it a long run. I cap off the build up phase with a 8-15K race to see where I'm at fitness wise. Then I move into a 12 week training program pretty much right out of the book. I followed his 12/70 marathon plan almost to the letter. I've had play around with his 10k and HM plans a bit because the workout days don't really hit my schedule and my comfortable weekly mileage falls between his two plans. Most recently I did his multiple race training plan and I really liked it.
You have a good base. If I were you I would pick a race 12 weeks out, pick a training plan from the aforementioned books, and get at it. I think a real training plan will make all the difference for you.