One option to consider is to treat Products and services as the same thing. Both are sold to the customer, just one affects inventory and the other does not so they can actually be managed from the same table. This approach might simplify some of the issues involved.
Can you describe the filtering you are doing? Perhaps we can move the filters into the relationships defined for the portal instead of a portal filter expression which would make it much easier to compute your portal total.