Your many-to-many junction table seems like the right approach to me. I've used the same approach myself many times. These tables typically consist of nothing more than a key from each of the parent tables.
You described a case entry form and a client entry form, which is fine for populating the parent tables, but are you trying to populate the junction from one of these forms as well? What are you using as recordsources for these forms? What is your workflow--do you add the case first, then the client, or the other way around? If this is truly a many-to-many, I'm not sure this approach will work anyway, since you can't add several cases and then several clients and expect to keep everything straight about who goes with which case.
Maybe you should try another approach: Add a case on the Case Entry form, then go to a Case/Client form where you can pick clients from a list. This form's recordsource is your junction table; the client list's rowsource is the Client table. If the client is not in the list, you have an Add Client button that opens a third form, Client Entry, as a modal dialog based on the Clients table. After you add the client and close that form, the second form (Case/Client) refreshes the client list, so you can then pick the client.