My appologies, those symbols are usually used for bus drivers.
I suspect your problem is on the input pins to the microcontroller, when the bus drives high the diodes conduct and the input pins also go high (as you intended) but when the bus is driven low, the pull-down resistors ensure the bus voltage drops but the diodes on the input pins cease to conduct. This leaves the input pins at an indeterminate level, they are isolated from the bus and can assume any level they like.
There are several ways to fix it, the best by far is to use tri-state drivers but that will required more ICs and some extra software. If you need input isolation at all, the poorer alternative is to add pull-up resistors to the input pins and reverse the input diodes. Use 10K pull-up resistors on the input pins and change the pull-down resistors to 1K. The idea is the pull-ups ensure the input pins are high if the bus is also high but if the bus goes low the diodes sink the pull-up current through the diodes to the bus level.
There are a number of drawbacks to using diode isolation, the main one being the voltage drop in the diodes themselves. Ideally the bus high voltage should be 5V and low voltage should be zero but the addition of those diodes drops both by about 0.65V. So high will be 4.35 and low will be 0.65, this reduces the safety margin before the bus voltage might be misinterpreted.
Check if you actually need the input diodes at all though, as all the devices will have the same input voltage you can probably leave them out. That will halve your problem in one change!
Brian.