Insert Into Statement With OpenQuery
Your dynamic SQL should end up looking like this.

   ;WITH CTE AS
         (SELECT * FROM OPENQUERY(XXX.XXX.X.X, 
        'Select 
        cm.empName EmpName
        ,case when wp.empCat IN (1,2) THEN CAST(COALESCE(ep.annSal,0) AS DOUBLE PRECISION) else 0 end As AnnualSal
        ,case when wp.empCat = 10 THEN CAST(ep.annSal AS DOUBLE PRECISION) else 0 end As AnnSal2
        FROM empPay ep
        INNER JOIN empcodes ac
        ON ep.empID = ac.empID
        LEFT OUTER JOIN empcat wp
        ON wp.empCat = ac.empCat
        Left join rst xr
        ON ep.userID = xr.userID
        LEFT JOIN site jb
        ON ep.userID = jb.userID
        INNER JOIN emp cm
        ON cm.arempID = jb.arempID
               WHERE xr.hiredate BETWEEN BETWEEN (''01/01/2017'')
               AND (''01/31/2017'') GROUP BY cm.arcustname'
            )--End OPENQUERY
        ) --END CTE
            INSERT INTO Data(EmpName,AnnualSal,AnnSal2)
            Select * FROM CTE;