I have seen other threads about mixing paid with free and others are having issues as well.
I used to offer free shipping on orders over $100USD, but can't do it with AbanteCart cart, so I created a coupon for Free Shipping if their total is over $100USD.
Yes, it can be abused, but it's the only solution at the moment.
In your case, mixing free with paid is not working. Some bug in the script I suspect. If you mark a product as no shipping in the product edit page, it still gets lumped i n with the other products.
Needs to be looked into please...you core php guys!