B is still wearing black and argues as follows. If B were wearing red, then as above, the first and second rounds would have gone as they did, and then A (seeing 1 white, 1 black, 1 red) would still not have known his own colour (if A were wearing black, then we have BRWB and everything goes through as before!). So B says "I don't know" for the third time.
B is still wearing black, and argues as follows. If B were wearing red, then A would have seen 1 white, 1 black, 1 red and not known his own colour; B would have said what he did; C would have seen 2 white, 1 red and known he was wearing black; D would have seen 1 white, 1 black, 1 red and known he was wearing white (if D was wearing black, A would have seen 2 black, 1 red and known his own colour); and finally A would still not have known his colour (if A was wearing black, everything would have happened the same way it did!). So B says, "I don't know."
C and D still know their colours.
A is still wearing white, and argues as follows. If A were wearing red, then as above, B, C, D, and A (second time round) would still have responded as they did, and then B (seeing 1 white, 1 black, 1 red) would still not have known his own colour (if B were wearing white, then we have RWBW and everything goes through as before!) So A says "I don't know" for the third time.
B is still wearing black and argues as follows. If B were wearing red, then as above, the first and second rounds would have gone as they did, and then A (seeing 1 white, 1 black, 1 red) would still not have known his own colour (if A were wearing black, then we have BRBW and everything goes through as before!). So B says "I don't know" for the third time.
It seems this will go on forever: if A and B aren't wearing the same colour, neither of them will ever find out each other's colour and C and D will just sit there snickering at them. Either I've made a logical error or there's a mistake in the OP.