About 8 weeks ago we took the train from Lucerne to Florence, after spending two days there. Very beautiful, scenic town. Don't know if you've made your hotel reservations yet, but the fantastic Hotel Walstatterhof is directly across the street from the station and reasonably-priced for Switzerland.
When booking the train, to obtain the best prices (and we did this about 80 days in advance) we used the SBB Swiss rail site for the Lucerne to Milan leg, then booked on Trenitalia for Milano Centrale to Florence SMN station. It was pretty cheap--second class was $40 apiece Lucerne/Milan, then Milan/Florence was $23 apiece. In March, the trains were about half-full as a rule, but this summer in high season I would absolutely book reserved seats in advance. As stated above, you can do it all online, and print out everything, including the itinerary just in case, and have the documents on your person when traveling. On the train, the man will come around eventually & will scan the digital square on each printout to verify your tickets, very easy.
And expect the unexpected. Leaving Lucerne at about 9:30 AM, we took a 30-minute ride on an older but beautiful regional train to a scheduled change at Arth-Goldau, a little Swiss town. From all we had heard, the train to Milan was supposed to be just across the platform and waiting for us, in a 10-minute window for the change. Wrong. There was nothing waiting for us, and I finally caught a glimpse of a timetable showing the Milan train down the stairs, under the tracks, and down another platform. We raced down there, and the conductor/porter looked at us, saw our concern and said that this train (for whatever reason--in Italy you don't have to have a reason sometimes!) only went to Chiasso at the Swiss/Italo border and there we would switch directly to the Milan train, which is what happened. I will say that the ride through the Alps was some of the most spectacular scenery I've ever seen, in & out of a snow squall, just beautiful any time of year probably.
It's a good thing we had planned in advance for a 90-minute layover in Milan before our train for Florence left, because with the extra change in Chiasso we only had an hour, which was still fine. Milano Centrale station is a crowded mess of humanity--even in off-season. We arrived at Florence Santa Maria Novella station about 5:00 PM, none the worse for wear and with a day of very interesting travel behind us.