you were on the right path with the letter transformation, but it seems you have made a mistake.
The correct function in Python:
def f(c):
red = ord(c)
blue = red + red
purple = red ^ blue
green = blue + red
yellow = blue & green
brown = ~(yellow & purple)
cyan = red | blue
res = cyan & brown
return chr(res)
You know, it's correct because, if you put in the "Potential Input" (CDFGIPRSI), letter by letter, you will get the gray colored characters (GDNOIPRWU) respectively as output.
This way, in fact R results in R and G results in O.
Now, trying to put the output back into the transformer did not do any good, because it resulted in some non-letter, even non ASCII characters: O D ^ _ I P R \xff U
valid letter transformations in the range A-Z are:
ABCDEFGHIJ -> ABGDENOHIJ
PQRSTU -> PQRWTU
notably, there are letters, that are transformed to itself, being:
A B D E H I J P Q R T U
only a few letters are transformed to different valid letters, being:
C -> G
F -> N
G -> O
S -> W
and for the movie (if it has any relevance) i would throw in Fight Club, as there was a scene where the guys chant "His name was Robert Paulson" or the like... just guessing 
Funny discovery though, would love to solve this riddle
PS: the "cane" in the files may resemble to a herding staff...

