Hi,
try to exec simple query from Server A to Server B and reverse
(on ServerB: select * from ServerA.master.dbo.sysobjects,
on ServerA: select * from ServerB.master.dbo.sysobjects)
So you can check where is problem (on server A or Server B).
Try to check msdtc is running on both servers.
Also you can check remote query timeout via sp_configure.
I hope something useful