I refer to this as cascading values between source and target fields, as opposed to "pre-checking".
Key to the right UX is (typically) you flip the target checkbox automatically until the user interacts with it deliberately.
You don't want the source to keep controlling the target forever, because the target is still presented as if it's user-writable and you'll frustrate the end user if you keep undoing their changes! So you keep track of whether the checkbox was changed automatically or manually, and once it's been changed by the end user you let it stay put. In technical terms, this means you remove the event listener on the source field once they interact (whatever "interact" means, that too may need to be defined) directly with the target.
Then you also need to figure in Pre-Fill -- if the target starts out checked because it was filled from the person's existing record in your Marketo database, you don't want to start flipping it around then, either.
The JS in this CodePen considers the above requirements:
MktoForms2 :: Auto-cascade select → checkbox
You set the sourceField to the name of your select, targetField to the name of your checkbox. The rules array is your matching logic, what you want to do when the sourceField's value is/isn't found in the list of values.
Even so, this code doesn't cover every possible permutation. If I were working on this project, I'd make sure all possible cases are covered -- it's not something to just overhear and implement -- or else you're constantly getting new "bug" reports because it wasn't spec'd out completely.