This question has been completely overhauled in the interest of being thorough in explanation.
I have noticed what appears to be quite a poor limitation of
You can't use the null-propagation operator in this way.
This operator allows to propagate nulls while evaluating an expression. It can't be used as the target of an assignment exactly as the error suggests.
You need to stick to the plain old null check:
if (a != null) { a.Value = someValue; }