The IIF statements are missing the false part for it to evaluate.
IIF(<test - evaluates to true or false>, <what to do if true>, <what to do if false>)
=iif(
Parameters!GROUPING.Value = "Staff", Fields!UserCode.Value
, iif(
Parameters!GROUPING.Value = "Client ID", Fields!ClientID.Value
, Fields!ProgramName.Value
),""
)
Add something at the end to tell the expression what to do if it is false.