Really ugly recursive CTE solution (I'm hoping someone comes up with a better solution). The performance for this will scale terribly.
WITH CTE AS (
SELECT ID, TranID,
CASE WHEN a.N = 1 THEN OriginCode ELSE DestinationCode END AS code,
ROW_NUMBER() OVER(PARTITION BY TranID ORDER BY ID, a.N) AS pos
FROM #Test
CROSS JOIN (SELECT 1 UNION ALL SELECT 2)a(N)),
CTE2 AS (
SELECT ID, TranID, code, CAST(code AS VARCHAR(MAX)) AS overallCode, pos
FROM CTE
WHERE pos = 1
UNION ALL
SELECT b.ID, b.TranID, b.code, overallCode + b.code, b.pos
FROM CTE2 a
INNER JOIN CTE b ON a.TranID = b.TranID AND a.pos < b.pos AND a.code <> b.code)
SELECT TranID, overallCode
FROM (SELECT TranID, overallCode, ROW_NUMBER() OVER(PARTITION BY TranID ORDER BY LEN(overallCode) DESC)
FROM CTE2) a(TranID, overallCode, ItemNumber)
WHERE ItemNumber = 1;
Results: -
TranID overallCode
----------- --------------------
201205 AMDDOHNBOADDDELAMD
201206 IXJRMI