When you use the "price per inventory" functionality and add distinct prices to each inventory (some "on-sale" and others not), the price shown as a range on the product must get the minimum and maximum prices across all the inventories. Mainly because when a new order is placed for multiple items, there could be a case when 2 distinct inventories are used because there is not enough stock on the first one and would also take from the second one.
On the other side, if all the inventories aren't on-sale, technically the whole product isn't on-sale (only a part of its stock). And apart from this, I don't know which are those filters you are using on your homepage but if they aren't able to read custom inventories' data (so they are compatible with Multi-Inventory), they won't be able to know that a product has one or multiple inventories on-sale. So, if you need your filters to support this, perhaps you would need to add support with custom coding (I'd kindly suggest you find a developer to assist you with this integration).