My first thought was too much heat in the starter which sounds you've addressed that... otherwise worn brushes/contacts in the starter motor but since you replaced the starter that shouldn't be it

My guess is your heat shield will fix it...

-Chris