I understand that Italy was fractured for much of its post-Byzantine and Lombard history but even dialects from region right next to each other like Ligurian, Piedmontese and Lombard differ from each other a decent amount.
The main causes are political fragmentation and influences from other cultures/groups.
After the Romans/Byzantines and prior to the unification of Italy, there were several governments and independent groups covering the peninsula. The common use of Latin diminished and eventually different languages and dialects formed.
Other languages of surrounding/invading people influenced dialects, as well. For example, the Piedmontese dialect was influenced by multiple forms of Italian and French. The presence of the House of Savoy in Piemonte (a French royal dynasty in France and Italy in the 11th-19th centuries) infused French into their speech, while the Kingdom of Sardinia brought back some Latin terms. Although, the Lombard dialect has some German influence due to its proximity to present-day Germany and past invasions by Germanic groups.
I recommend reading The Pursuit of Italy by David Gilmour for a better explanation. Hope this helps.