>I've had a similar experience inthe past. What I did was every time there was a bug reported in a screen I took that opportunity to rewrite that screen. It spread out the cost of a rewrite and over time the code got a lot more stable. Well worth it in my opinion.
>
What about database design? This is not easy to change / practically impossible.
Also in this case most of the screens are dependent on each other.
If it's not broken, fix it until it is.
My Blog