Merging table records across TabName for each PersonID
Can you have , in  column BenefitType  , multiples unique information, for the same Person ? 
if no(only one unique value/status), you can use MAX ,  else (u can have more unique values) - you must provide more information , an algorithm to how to retrieve the desired value .

The same , for for the column HealthStatus.

SELECT
    [PersonID] ,
    [FirstName],
    [Gender],
    MAX([BenefitType]) as BenefitType,
    MAX([HealthStatus]) as HealthStatus
 FROM Temp AS T
 GROUP BY
    [PersonID] ,
    [FirstName],
    [Gender]


Output:

PersonID    FirstName   Gender  BenefitType     HealthStatus
C103        John        M       Benefit Type 1  Healthy
C104        Mary        M       Benefit Type 2  Sick


dbfiddle here