That much I've figured out. JB and JC on the Arty are high-speed (no series resistors). I had no problems running 280MHz single-ended LVCMOS33 from JB to an LVDS driver chip. See section 10.2 High-Speed Pmod, here: https://reference.digilentinc.com/arty:refmanual
You can also use the Arduino/ChipKIT shield connectors. You can get an XDC file here: https://reference.digilentinc.com/arty. Un-comment the connectors you're using. You can often remove the IO standard definitions from the XDC, and let Vivado figure it out. If you use a SelectIO Interface Wizard, for example, it lets you pick which differential signaling standard to use.
If you're only using part of, say, the shield connectors, I've found what works well is to write a custom VHDL/Verilog wrapper, outside the generated block-diagram wrapper, just to adapt the block diagram interface names to the actual pin names. That way you don't have to mess with the XDC file every time you change some little thing in the I/O definitions.