I've had good luck with plain old 3% peroxide from walgreens. i used a fiberglass dough rising pan and bent up some brass brazing rods(stainless welding wire works too) to bolt to the pieces(use only stainless or brass screws-plated steel will rust and contaminate the peroxide).
I keep the pieces 100% submerged (chip clips to hold the wire to the pan)in the peroxide and leave it in the hot texas sun for a day. I brought back 3 1200 cases/keyboards to white and one of the 1200's was orange when i started-literally orange. I did many A4000 pieces and some A3000 bezels also. They all came out great.
be sure not to ever let the parts float up into the air or you will get stain lines(ask me how i know).
I don't use oxyclean or the paste some suggest.
I have even added distilled water to the peroxide to make up for evaporation and it still worked ok,just a bit slower.
The secret i think is the light source and warmth-cold liquid doesn't work well.Texas summers can get to 100f+.
UV lighting with the proper wavelength is probably best. To date none of the stuff i whitened has returned to yellow.
You can boil peroxide down to make it stronger(DO IT OUTSIDE in a well ventilated place!). I have never needed to do this however.
Stronger peroxides can possibly be found at beauty supply.