Here is a simple-minded query, where I have added the employee numbers to table variable to make things easier. I assume that in your real database, you have an Employees table in some shape of form.
DECLARE @Employees TABLE (EmployeeID int NOT NULL PRIMARY KEY)
INSERT @Employees(EmployeeID)
VALUES(134618), (977133), (504122), (407133)
SELECT F.RequestNo, E.EmployeeID,
Role = CASE WHEN F.REAN82 = E.EmployeeID AND isnull(F.REAN83, -1) <> E.EmployeeID AND isnull(F.REAN84, -1) <> E.EmployeeID THEN 'REQ'
WHEN isnull(F.REAN82, -1) <> E.EmployeeID AND F.REAN83 = E.EmployeeID AND isnull(F.REAN84, -1) <> E.EmployeeID THEN 'LM'
WHEN isnull(F.REAN82, -1) <> E.EmployeeID AND isnull(F.REAN83, -1) <> E.EmployeeID AND F.REAN84 = E.EmployeeID THEN 'DM'
WHEN isnull(F.REAN82,-1) <> E.EmployeeID AND F.REAN83 = E.EmployeeID AND F.REAN84 = E.EmployeeID THEN 'LDM'
END
FROM @Employees E
CROSS APPLY (SELECT TOP 1 F.*
FROM F6000059 F
WHERE E.EmployeeID IN (F.REAN82, F.REAN83, F.REAN84)
ORDER BY F.RequestNo) AS F
ORDER BY F.RequestNo;
However, just like your query, it returns REQ for 407133 and LM. This is because on the first row that 407133 appears on is Request No 12008, and on this row 407133 is in column REAN82 and whence you get REQ. I can guess from your colouring that there may be additional business rules that rules out this row as a match for 407133, but since I don't know those business rules, I can't do better than this for the moment.