Have you tried instead of marking the Products as Always Free Shipping to use the shipping module for Free Shipping Options freeoptions and set the Total to >= 0 then the Item Rate item and set how much per item to charge?