ok, It seems that adding external pull-up resistors to the data pins (of the at89c2051 uC) did most of the trick, however, there is a problem with the timing.
The 1st byte is correctly written into the uC, some of the subsequent bytes are not. When I programmed the chip, I made PROG low, made it high, and then I made sure that a positive was applied to the XTAL pin followed by a negative to the XTAL. I made each step take 100ms (which is well over ATMEL's minimums).
I'll try adding a pull-up or a pull-down resistor to the XTAL connection and see if that works.
but if you guys can suggest anything else, let me know. Thanks.