I am not sure which packaging program you are using, but this should work if you edit the MSI package directly using ORCA.
First, you speak of changing the install level of Components ... at install time, it is easier to change the install level of a Feature. This is accomplished by placing your conditional expression into the Condition Table. Assign the Components you wish to install conditionally to a Feature and list the Feature in the first column of the table ... the *new* install level in the second column ... the conditional in the third column. Remember that the Install Level for the package will install all features with an equal or *lower* install level. Set the default install level for your Feature to a higher number and use the Condition to set the level to a lower number to include a feature. Set the default to a lower number and the conditional to a higher number ro exclude a feature.
The other item to confirm is that your dialog is displaying between CostInitialize and CostFinalize. The CostInitialize action loads the Feature Table, so if you have set conditionals before that time they *may* be reset by the action. The conditional will be evaluated by the CostFinalize action, so if your dialog deploys after that time, it will have no effect.
The standard UI that I use displays the WelcomeDlg *after* CostFinalize, so if I want to customize the Feature Install Levels, I do so through the CustomizeDlg. In your case, you would want to reposition the WelcomeDlg to start the dialog sequence *before* the CostFinalize event.
If your Features, Components, Conditions, and UI sequence are set properly, then you may want to insert a 'debug' dialog into your dialog sequence *after* your property value is supposed to be set. Display the value of the property in a Text box so that you can examine it and ensure that it is correct. I would also display the value of the conditional to see that it is tracking the property. After you get your package running, you can take the debug dialog out of the sequence.