Wow, that's a tricky one. I haven't seen a lot of good data on rel="alternate" hreflang="x" yet, other than general suggestions that it's worth trying and seems to sometimes work. Technically, Google would say that the green/red/yellow versions aren't true duplicates, but practically, I think the canonical here is a good approach.
My gut feeling is that the canonical will overpower the hreflang - adding the alternate language versions to the color variants won't hurt you, but it probably won't do anything. If it were me, I think I'd go with your first approach - just add the hreflang tag to the canonical version and leave it off the variants. Monitor that - see how it impacts your international rankings, and go from there.