I believe you will pay a great deal of extra money for those tickets if you wait until you are in Europe to buy them.
I don't really think there is a "best" train company to use; it's more a matter of the schedules. With the stop-over points you have defined, there may not be a great deal of choice about train routes.
I like to use the Deutsche Bahn website to examine rail schedules. It's easy to see where you'll need to change trains, what towns you'll travel through on each departure, etc. It will not, however, give you the fares for French or Italian trains. For the money end of things you can either check the SNCF and Trenitalia websites, or you can use trainline.eu, which I believe sells tickets for trains in both countries.
To see the price penalty for waiting until July to buy your tickets, price out your travel legs for departure tomorrow and again for a date as far out as each website allows. The difference is the penalty for delaying your purchases.
Edited to add: It appears that the Lyon-Montevarchi Terranova travel leg is going to take you at least 8 hr. 17 min.