Your calculation is effect by the table occurrence. I assume you want your total based on the records that are in the portal, so your calculation needs to be displayed based on that table occurrence.
I have filtered portals so that only the relevant customers appear in a compass point portal, along with their percentage of costs to sales.
The portal filtering is the source of your trouble here. Calculations that reference the data in the portal's table (occurrence) from the context of your layout's record will ignore the filters and refer to all related records, as you have discovered.
You'll need to change your approach in one of the following ways:
Use a match field that specifies either North, South, East or West to control which records appear in your portal so that you can remove the portal filter.
If you can figure out a summary field that correctly computes your values, you can add a second, one row portal with the exact same portal filtering as the original and put your summary field inside the row of this one row portal. This result is basically "read Only" as it will be difficult to refer to any such value in other calculations so the previous method may be the better option.
You can also use a calculation field with ExecuteSQL and a WHERE clause that replicates the filtering effects of both your relationship and your portal filter expression to compute this value.