Is there a train from Malpensa airport to Lucerne or do we have to go from Milan city center?
You will have best choice of times and trains by taking the Malpensa Express train to Milano Centrale where there are frequent trains to Luzern, one or two direct, most requiring a train change at Arth-Goldau.
We did the direct train from Milano Centrele to Luzern. You have to go to Centrele station to get that. Also I booked on the Swiss Train site since it was a swiss operatated train not italian. http://www.sbb.ch/en/home.html
Be advised that the change at Arth-Goldau may not be right across the platform as advertised. We did the opposite direction, Lucerne to Milano Centrale. Got to Arth-Goldau, train nowhere to be found. Finally found out we had to run underneath and down the tracks to catch it. The final 30-40 minutes from Arth-Goldau to Lucerne should have some absolutely spectacular scenery.