I can't put the information you have posted together into a picture that makes any sense. In post 18 HostC had a single interface, eth0. If that is true why does the hostC routing table think that hostC has two interfaces? I'm not real sure what I can trust.
The strangest thing I see is the default route in hostC being first. I thought that the routing table is scanned sequentially with the first match being taken. If that is right, HostC default route will always win.
Other than that, I don't don't know where your problem is. This one has me stumped.
finally I've resolved my issue, just by this command:
route add 10.6.0.50 eth2
Frankly I don't understand the importance of this line, although this resolved my problem. so, if someone can explan me its importance, it will help me a lot.
Firstly, this added route definition will not be available after the next boot. Is 10.6.0.50 the gateway?
If not and this was the address you were struggling to connect with, then perhaps the address was cached somewhere, perhaps an ARP pointing to the wrong MAC or because of a previous attempt to go via eth0. Maybe I'm talking out of my hat, but i can't think of another explanation.
When you get a chance to boot, please test if the problem recurs. If not, then it is likely to have been something cached, but if it does we will have to dig some more.