I am a dual EU (Italy) and US citizen, living in the US. I entered the EU through Rome and stayed in Germany for eight months. I registered as a resident in my German city. The problem is that I entered Italy with my American passport. I will fly out through Rome. What should I do? Should I explain to Italian immigration what happened? Should I leave with the US passport? Leave with the Italian one? Present both?
Only ever present your Italian passport or ID card at border control when entering/exiting an EU/Schengen country, provided you have it.
The same goes for your upcoming exit; only present your Italian document.
Firstly because you have a unconditional right to be there, and secondly entries and exits aren't electronically recorded, so they won't notice anything out of the ordinary if you just present your Italian document.
For flight check-in to the US, however, it's the US passport you need to present.
The only possible problem is that the "paper trail" on your US passport looks incomplete. Somebody who looks at your US passport might conclude that you did overstay (which would be wrong -- your freedom of movement as an EU citizen is independent of how you entered or left).
- When you apply for a third country visa, you would presumably mention your Italian citizenship, so overstay in the EU cannot be an issue.
- When you enter the EU, as Coke said the easiest way is to show your Italian passport.