A large part of the english language problem in the southern Europe (it's not just an italian problem) is cultural.
The english language is considerably more embedded in the culture of the northern European countries; for example, there's considerably less dubbing.
If Italy stopped dubbing (which will never happen, because it's a tradition), italians would speak a considerably better English, just because of familiarity.
I'm not sure if there is a realistic improvement that could be applied. I'm not so critical of the italian schools; without significant immersion, it's hard to improve or retain a language meaningfully.
I suspect that a considerable factor of the problem is that Italy is not a significantly cosmopolitan country (intended as amount of "traffic" of international people), so that there is very little exercise (or "immersion", using my previous term).