I have had issues with detecting a JTAG chain with 2 XC9500XL CPLDs and 1 Spartan 3 FPGA on a custom pcb.
I made a mistake thinking the Spartan 3's JTAG was 3v3 instead of 2v5 and connected the FPGA directly to the 3v3 JTAG.
Xilinx wrote an Application Note about using a 3v3 JTAG interface with the Spartan 3 [here] where they add resistors to limit the reverse current induced by the overvoltage protection diode.
Shouldn't by chain work anyways even though I haven't added the resistors ?