Простого решения не вижу. Нужно пробегаться по всему DOM дереву и делать как-то ч/б.
Картинки можно превратить в ч/б при помощи canvas, других способов делать «на лету» не знаю.
Ну а остальные элементы — средствами CSS, или вроде того, тут уже проще должно быть.
И как-то надо запоминать состояние элементов, чтобы потом вернуть обратно всё.