For the big city stations you're mentioning the options are numerous and run nearly all the time.
There are two train companies in Italy - the state run Trenitalia and the private run .Italo that only runs fast trains between big cities.
https://www.trenitalia.com/en.html (Use Italian names for cities - Firenze for Florence and Roma for Rome - for best results)
https://www.italotreno.com/en
Fast trains have reserved seating, multiple classes and you can buy tickets ahead of time at a (sometimes significant) discount trading flexibility for price. Given you have only mentioned big cities you can wait until the day of and will always have options but you will pay full price. If you are willing to commit to time and stick to it you can book ahead and pay less. Do not count on timed tickets the day you fly in if that is in your plans.
Both companies have apps that let you buy and store tickets as well check trains in motion. I recommend getting at least the Trenitalia one if not both. (I've heard from the forum that the Trenitalia app may not be accessible in Canada, but I have no idea why.)
Local trains - called regionale - can never sell out and the price never changes so buy the when you need them. This is one place the Trenitalia app really helps.
You can generally only buy fast train tickets about 2 months ahead of time so assuming you're traveling until later in the year you can put off worrying about booking those tickets until you're closer to leaving.
Hope that helps,
=Tod