Well, that "solution" is pretty dangerous. You just forced every query to go through a recompile, which can be pretty costly, depending on the query. It's likely that you're experiencing bad execution plans, caused by out of date statistics or parameter sniffing, hard to know. Forcing the queries to recompile gets a better plan, in some cases, and you see performance go back up.
But this is just speculation. Instead of nuking your cache over & over, I'd suggest you start evaluating wait states and queues to identify what is running slow and start figuring out which procedures are causing the slowdown. If you haven't set up a monitoring using a server-side trace, you can do spot checks using DMV's. I'd try sys.dm_exec_query_stats to see what the longest running queries are.
Then, figure out what's happening with the longest running queries and fix them.