My times are not far off yours.
22.31 5k
48 10k
1.45 Half marathon (I've done 8 in a year and that was my fastest as they have ranged from 1.57 which was my first half all the way to 1.45)
I also did a marathon in 4.18.
My target was to do Sub 4 like yourself and I was doing really well up to Mile 20 when I crashed and burned. In my experience, doing a marathon is a completely different ball game.
You really need to build up your endurance for doing the distance and also be super focused.
I run an average of 35 miles a week now. And my aim is to run the Florence Marathon in Sub 4hrs. I was bitterly disapointed with my last marathon time and thought that based on my other times that Sub 4 was going to be feasible but the odds were stacked against me...
In all fairness I have now learnt from my mistakes... I don't think its only the training that had an impact on my time... I have to add that I had 4 hours sleep both nights before the race as my brother kept me awake with his snoring, I spent the day before exploring the city as i was abroad, I didn't have a proper breakfast, I had a stomach cramp at Mile 20 as I don't know what possessed me but i was so hungry and ended up eating slices of apple that were given out to the runners that gave me a massive cramp and it was raining the entire time and i was wearing so many layers I felt like i had a weight on top of me! So I guess you can safely say that I didn't stand a chance but this time I am going to try and remedy the situation.
I got myself a room all to myself the night before, I'm bringing my breakfast and also carrying Clif Bloks with me on the course so I won't eat any random foods laid out on the course. As for the weather I can only HOPE that the weather gods are kind to us!
A friend of mine who I helped train for a marathon ran the Berlin marathon recently marginally faster than i did. She ran the entire course whereas I ran the first 20 miles and walked/jogged the last 6 miles. She had perfect weather conditions, a good nights sleep etc... She said it couldn't have gone any better and she ran the fastest she has ever ran as when we were training together she is a much slower runner than I am... Her HM PB was just over 2 hours and she managed to do Berlin in 4.16...
I think that experience does play a big part in it as well... You just never know how the day will go but i think its achievable if you put the training in esp the long runs as it gets you ready for the distance.