It's good that you're asking these questions - the only way to progress is to notice the finer differences.
When you use "A sets off B", I think the colour of A is quite different to B, but A makes me aware of the colour of B. It's about contrast.
For "A shows off B", I think A and B are similar colours (and you realise how blue her eyes are). It's about accentuation.
For "A flatters B", the difference is less clear. Either the colours are similar or they contrast, but in some way they match, and we notice her blue eyes.