Would the best design here be to setup all components - (Durable Functions, and Functions) within a single app service?
While this would be fine for a few customers with less load, I wouldn't recommend this approach. (I believe you mean a single function app here and not app service)
Instead, it would be best to split the sub-functions into separate function apps. You could group them together into smaller groups too if required. These sub-functions would be exposed as Durable Async HTTP APIs.
The client specific functions would leverage the Durable HTTP Client to make calls to these sub-functions based on their scenario.
Would it be possible to scale a single clients durable function without scaling other clients?
If they are all in deployed as a single function app, then no. But the approach that I shared above would for the client functions. The sub-functions would scale based on how often they are called.
I expect there to be hundreds of clients, and hundreds of sub-functions. Is this ideal on a single app service?
This would completely depend on how much load is present and size of this app service. You can surely deploy multiple function apps into a single app service for the above approach to work.
You could also consider the newer Premium Plan which scales similar to the consumption plan but has higher compute options.