This should be part of the ProgramFlags property, which is basically a bitmask for several options that unfortunately don't have their own explicit property. It is a common concept with all of the old Package/Program type objects which is a little annyoing to handle. The program flags are described in detail in the description of the SMS_Program WMI class where it says:
0x00000080 (7): RUN_DEPENDANT_ALWAYS. If set, this program's immediate dependent should always be run.
so basically you have to flip the 7th bit to turn this on or off.
Now I don't know whether you are familiar with this concepts of bitmasks, it basically means viewing an integer in it's binary form and assigning each position a boolean meaning to flip it but storing it as the final number that is the "sum" of all the bits.
So in your case this would mean you ProgramFlags should be something like 2282791936 (these numbers can vary dependent on you other options of course but they should change when you change the setting) when you don't have the box checked and 2282792064 if you have it checked. (The 0x80 mentioned in the class description is 128 decimal so the one number should be 128 higher than the other)
Now the "official" way to program this would of course be to gather all the flags you want from the description and build your own number and work with that, but I found that some of them are oddly dependent and some hard to understand, so in cases like yours where I know exactly what I want from a GUI perspective I always just created a program as needed, exported the value and hard coded it in my script. You can do this the same way as you did with the dependent program:
$p = Get-CMProgram -PackageName "packagename" -ProgramName "programname"
$p.ProgramFlags = <your flags>
$p.put()