Did you ever figure this out? I stumbled upon this, and it didn't answer my question, but I think you're missing parenthesis and single quotes in teamsApp@odata.bind.
I think this:
"teamsApp@odata.bind": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/com.microsoft.teamspace.tab.planner",
Should be:
"teamsApp@odata.bind": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps('com.microsoft.teamspace.tab.planner')",
Hopefully someone else stumbles upon this and can confirm (and hopefully this helps the next person, too!). 🤓