Is it not possible to just have one except clause in a calculated member? (Without using aggregate)
Like this:
MEMBER [Agency].[AgencyName].[Trade] AS (
EXCEPT([Agency].[AgencyName].[All].children, [Agency].[AgencyName].&[Direct Business])
)
In case of sum aggregation go for:
([Agancy].[AgancyName].[All],[Measures].[MyMeasure]) - ([Agancy].[AgancyName].&[Direct Business], [Measures].[MyMeasure])