Hi Damian,
The PCI-6533 (or PXI-6533) high-speed digital I/O card would be perfect for this type of application. It can achieve rates in the MHz range for finite transfers. It is 32 bits wide (I assume you only need 16). It is also a clocked protocol. Here is the link to the product page:
http://sine.ni.com/apps/we/nioc.vp?cid=1104〈=US
As for a VI that does CRC-16, LabVIEW doesn't have this algorithm built in but I've seen other developer exchanges that mentioned the protocol. Here are the links:
http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RNAME=ViewQuestion&HOID=50650000000800000040620000&ECategory=LabVIEW.LabVIEW+General
http://exchange.ni.com/servlet/ProcessRequest?RHIVEID=101&RNAME=ViewQuestion&HOID=50650000000800000
01A400000&ECategory=LabVIEW.LabVIEW+General
Anyway, hope that helps. Have a good day.
Ron