If the job's Group or Queue is held, setting a different HoldType here will not override the Group and/or Queue. That is, you cannot override a hold state applied at the Group or Queue level. Use GetEffectiveHoldType to determine the effective hold type, factoring in the hold type of the group and queue.