I've made an color aimbot in the past for cs:go. The problem is, as you already noticed, the shades.
There are simply to much similair colors in the map that reasemble the player's head (or body).
Mine worked pretty decently for maps that had no sharder (and dev-colored maps).
The solution you mentioned, mapping all shaders for the map, would not be doable, as you'd need to read memory to do screen to world calculations. At wich point you can better just read out the players positions aswell.
Works great for other games that have a distinct color, but not for cs:go.
an example of my old script:
ps.
All made in AutoIT ofcourse.