how could I populate the junction table either using code on the form or a function so that my customer gets access to every service?
The junction table isn't for all the possibilities, it's for what actually took place. So if you want it to contain history it may or may not be possible to do it with queries - would depend on your current tables. If you only want the table to contain records going forward, then you will be creating records in forms as you go. The junction table needs to relate customer table and service table records for their job/order. If they request 3 services, the CustID will be there 3 times for the order (and so would the order ID if you have that in another table), once per service. Likely you'll need to have a price field in the junction table since there's no standard price for a service.
That being said, in the OP you stated
Each customers tariffs are different, but not the structure of the tariffs.
I don't think tariff and customer are related so don't try to make it so. Unless I'm not understanding the terminology here, a tariff is a job/service and you'd list those. If the same tariff name has different set rates, you need a record for each combination. If you determine the rate on the fly, then you don't necessarily need a record for each combination, but it will make it easier to re-use the information that's being created.
The rest of it seems like it's the classic customer table related to orders table related order details table. The order details table would contain the tariff and the rate, which is either established or added on the fly.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.