1. The Gotthard Pass is now open.
2. I do not believe there is any one-way charge for a car picked up in MXP and dropped off at FCO --but you should certainly check that with your car rental agency.
3. Car rental in Germany is much less expensive than in Italy. Swiss rental rates tend to be closer to the Italian rates.
4. If you do rent a car in one country, ask if there is any possibility to get one which was left there from the country where you will drop it off. If there is, the rental agency will be thrilled to give it to you and will not charge you a one-way fee. Moreover, they will not charge you more even if it is a top category luxury car. (It saves them the cost of returning the car.)
On one trip, in which I was spending a week in Germany before travelling to Italy, I rented my car from Hertz in DUS -- and they had no Italian-registered cars. The morning that I drove to Italy, I called Hertz at FRA and asked if they had one. They did and told me to stop in on my way south and exchange cars. I got a much higher category car at no extra charge and did not pay any drop off fees. As an extra bonus, because the car had been driven through Switzerland on its way from Italy to Germany, it had a Swiss autostrada sticker on the windshield and I didn't have to spend 40 SWF to buy one.
5. Do not even consider renting from Avis at MXP. See
this post about my experience there.