Does bitcoind need to be up to date to serve blocks to other servers
Bitcoin clients are perpetually in a state of "catching up with the network".  There is no definitive point at which they are completely caught up.

If you are requesting a block or transaction that the client has yet to see, it will not be able to respond with that block or transaction.  Make sure that what you are requesting is something that the client has already seen and verified.  If you are sure that the client is aware of the data being requested, then you should continue troubleshooting.