There are many other proprietary settings defined for printers, so this advice applies to any scenario where you always want the users to specify specific settings for single printer.
Instead of trying to automate the user actions through C# code, you (or the user) should define a new Printer Definition and pre-set the desired settings as the default settings via Printer Preferences.
please excuse my Windows 11 interface, the preference dialog has been in windows in some form since the beginning.

If multiple users are affected the user environment is a Windows Domain then you can define this printer definition as a domain resource and secure it so that users cannot alter the defaults.
If there is no reason to ever print to this printer using other settings, you can simply set the default properties on the single instance of this printer, however this works well for cases where you have multiple trays or multiple fixed scenarios for the user to choose from, you should use a naming convention that describes the properties that are set by default if the user chooses to print with that printer:

One of the reasons this post didn't attract much notice is that this solution for printers has been used since long before .Net programming (I remember doing this in the early 90s), it became sort of assumed knowledge, but also many modern printer drivers include variations of profiles or presets that make this redundant, but the vast number of variations out there in the market make it incredibly hard to code a generic solution from your application, so the developers of the world all sort of gave up and delegated the responsibility of configuring the application printers to the networking and infrastructure guys.