When an improvised solo is good, it sounds as if it had been composed, written with great skill and artistic taste, and practiced to perfection. Like a good performance of a good composition. The only real difference between a good improvised solo and a composed one is, when you improvise 10 times, you get 10 different solos, but the written notes stay the same. So, here's what to do: play variations of your solo.
Since you're able to compose a good solo and practice it so that it sounds nice, what you need to do to make it actually improvised is, change something about it every time you play it. First, make only a few very small changes, and then gradually more, and larger changes. Try not to play the exact same thing twice in a row. Change the rhythms and lengths, the phrasing and emphasis, the dynamics. Then start changing the pitches. Add a different embellishment each time. Incorporate a few small licks in the solo, and for each new solo, play a different lick somewhere. But start small - make ONE variation to ONE note in ONE place. Can you do that? If you can, then make a change somewhere else. And then make TWO changes. That's improvisation.
You say that unfamiliar chord changes are a problem, because you can't handle them fast enough. Writing a solo - or many solos - helps here. You get familiar with the changes, slowly and peacefully. For every chord and tone you select in your written solo, you may find a few alternative notes. Try to find alternative notes. Write a new, completely different solo from the beginning, if it helps to come up with alternatives. Select a backing chord and find a couple of optional notes to play over it. Or you can even write a completely different chord to arpeggiate on top of the accompaniment. No hurry, take your time, write it down. You'll get better at it. Try selecting a triad pair over a chord or a passage. For example, over a Cm7, try alternating between the triads F major and G minor, it creates a nice sound. When you have a triad pair, it's easy to create variations. Just arpeggiate the triads in a different order and different rhythm every time.
Prepare your written solo with the specific purpose of being able to create variations of it. Write an outlined chord arpeggio somewhere, so you can play a different chord every time. For the triad pairs trick, write yourself some triad pairs, and then change what triads you play and how.
I can't guarantee it, but I believe that if you keep doing this, you will not only play better solos, you'll also learn to be a better improviser. Why not take someone else's solo as the starting point for playing variations, or the song's main theme? As far as I know, that's where jazz improvisation starts from - playing variations of existing tunes.