There isn't a way that I'm aware of to have only certain tasks show up to certain people within a project - our access control is limited to the project level, so everyone who can see a project can see all tasks in a project.
One thing you might consider as a workaround is to multi-home the tasks into multiple projects (that is, add them into multiple projects). In this way you can limit membership to the second project to only the people in that set of clients, and have your original project as a master board with just your team in it.
You will have to keep these projects in sync, but this is possible in our API. Our tasks/addProject endpoint accepts both a project and a section (which is admittedly a bit unintuitive). If you maintain a mapping of each section, that is, "ID of Column A in the master board view maps to ID of Column B in the client board view", you can periodically iterate over all your tasks and re-insert each task in the client board view in the correct column based on where the task is in the master board view. (addProject is idempotent across requests, so re-insertions into a project are OK).
This is an interesting use case, thanks for sharing it! Hopefully this workaround will prove to be usable.