What's it supposed to do and what DOES it do?
Does it work at all, what works, what doesn't?

Things like that would be some pretty useful information for anyone trying to help.

My first GUESS, since you say it works in the simulator, is a problem with the oscillators(s). If I'm not mistaken Proteus doesn't actually simulate the oscillator, you just tell it a frequency and it runs at that. In real life things are not perfect and the oscillator, especially the internal one the '628, might be off in frequency enough to cause i mismatch in the baudrate timing.

If your outputs on the receiver doesn't act the way you expect them to then my vote goes to a read-modify-write issue. Your clock frequency is quite slow and RMW issues usually shows up at much higher frequencies but perhaps you have your outputs heavily loaded?

/Henrik.