Предполагаю, что после фильтрации переписываются объекты в DOM, по этому, все что ранее было поставлено на прослушку, стирается. Есть несколько способов, как это исправить:
1. Вынести установщик прослушки событий отправки форм $('form.cart').on( 'submit' ...
в отдельную функцию, и вызывать её каждый раз после фильтрации. Вариант так себе, говнокод :)
2. Слушать событие на объекте, который точно не стирается из DOM, например:
$( 'body' ).on( 'submit', 'form.cart', ...
3. Для любителей старой школы, написать функцию отправки в корзину в корне window. И вызывать её непосредственно на элементе:
<form onsubmit="addToCart();return false">...