filters will only affect what the price is displayed as, and not what the price actually is (in the cart). There is a set_price() function on the product class, but I haven't been successful in using this. What I have done is to dynamically generate a coupon for each product when it is added to the cart to make the price what I want it to be.
as for display, the filter you want to use is woocommerce_get_price_html