As a qualified, practising teacher of English as a foreign language, I guess I should be able to help.
For competence, once you've got past the basics of grammar, it's mostly about memory. Create a database of words, phrases, and example sentences, and use some kind of Spaced Repetition System (e.g. Anki) to keep reviewing them.
Fluency is harder. First, what does it mean to be fluent?
Last time you were in a shop and the shopkeeper handed you your change, what did you say?
Thank you.
Did you plan ahead? Did you think, "Oh heck. The shop keeper's just given me some change. What should I say now?" Of course not. The words just came to your lips. You were following a script that you'd internalised at a subconscious level. That's fluency.
So you need to internalise more scripts. How are you going to do that? Learn them. Seriously ... that's all there is to it. Just memorise huge chunks of text. Songs, movies, passages from your English textbook, and so on.
In particular, try shadowing. (I.e. speaking in synchrony with the audio version.) At first, do it with the printed version in front of you. Then do it purely from memory. Try exaggerating the accent when you do it, too. It may sound ridiculous, but to native speakers it will sound better than your normal Italian accent.
You'll see the benefits of all this hard work when you're in conversation. Fragments of memorised dialogue will pop into your head exactly when you need them, just like when you said Thank you. to the cashier.
By the way, children do this instinctively. That's why they love to watch the same movie, or hear the same story, over and over again.