Mike,
You should replace the uppercase AND and OR with the lowercase version to get this:
if (
$Eval/PRS = MFM.StatEnum.Not_Started and
$Eval/PSS = MFM.StatEnum.Not_Started and
$Eval/PC1S = MFM.StatEnum.Not_Started and
$Eval/PC2S = MFM.StatEnum.Not_Started and
$Eval/PDS = MFM.StatEnum.Not_Started)
then MFM.StatEnum.Not_Started
else if ( $Eval/PDS = MFM.StatEnum.Completed )
then MFM.StatEnum.Completed
else if (
$Eval/PRS = MFM.StatEnum.Deferred or
$Eval/PSS = MFM.StatEnum.Deferred or
$Eval/PC1S = MFM.StatEnum.Deferred or
$Eval/PC2S = MFM.StatEnum.Deferred or
$Eval/PDS = MFM.StatEnum.Deferred)
then MFM.StatEnum.Deferred
else if (
$Eval/PRS = MFM.StatEnum.Waiting or
$Eval/PSS = MFM.StatEnum.Waiting or
$Eval/PC1S = MFM.StatEnum.Waiting or
$Eval/PC2S = MFM.StatEnum.Waiting or
$Eval/PDS = MFM.StatEnum.Waiting)
then MFM.StatEnum.Waiting
else MFM.StatEnum.In_Progress
This will remove the errors and work for you.
Be aware that the result of an exclusive split should be a boolean or an enumeration, that's why I changed the parts after the then as I tested this in a split. When using this in a change object activity the string option can be used.
I would however suggest to use a split for this and multiple change object activities for better readability.