You can check the schedules this week and the ones in December won't change much.
Buses schedules are already out for the winter, but there are several companies depending on the province you are. In any case, buses are available during the Xmas holidays. Just be aware that on Sundays and Holidays bus service is very very infrequent (and sometimes not operating at all in some minor lines). Therefore if you travel to locations where a bus is necessary, it's a good idea not to go on Sundays and Holidays. Train schedules are more or less the same every day, including Sunday and holidays.
The following days are holidays:
Dec. 25 (Xmas day)
Dec. 26 (St. Steven day, which is a Saturday this year)
Jan. 1 (New Year's day)
Jan. 6 (Epifany)
Avoid bus travel on the above days and on Sundays. Saturdays are ok, although Mon-Fri have the most service. Schools are closed from Dec. 24 to Jan 6, during this period some bus runs specifically designed for students, are cancelled as well.
Based on the locations you mentioned, the following is the most logical itinerary sequence (all by high speed train):
ROME
FLORENCE
VENICE
MILAN
Since you are relying on public transport, I recommend you use Florence as the base to visit Siena (75 min by bus or train), San Gimignano (75 min by bus), Pisa (48 min by train), Lucca (very close to Pisa).
If you want to spend a couple of nights in the above towns, you can. Maybe 2 nights in Lucca (not Pisa which has little to offer, you can visit Pisa on the way to Lucca in 1 hr) and/or 2+ nights in Siena.
San Gimignano is equidistant from both Florence and Siena, so you can visit it from either. Go to San Gimignano on a weekday.