You're probably seeing some form of multipath interference. After the signal is transmitted, it can bounce around quite a bit and the receiver can end up getting several overlapping copies of the original signal. Depending on their time delays, this can manifest itself in several ways. First, if the offset is less than a wavelength, then it can cause destructive interference and it will appear as a decrease in receive signal strength. If the offset is more than a wavelength, then it can cause intersymbol interference where one part of a transmitted symbol bleeds into the next, causing the receiver to misinterpret the received symbols and producing a garbled output.
Also, if you are using a system like wifi, the overall link quality is also dependent on being able to receive signals from all of the other hosts connected to the router as only one host is allowed to transmit at a time. A host is supposed to listen before transmitting to make sure that nobody else is transmitting on the channel. If two hosts that can't receive signals from each other transmit at the same time, the signals will interfere at the router and both hosts will have to try again. It sounds like you aren't using wifi, though, so this may not be an issue.
How are you measuring the receive power?