I would also use an external counter. As NETMF interrupts are somewhat limited to around 1Khz, and you don’t want to miss an interrupt. The external counter will always give you the correct value.
and in addition with the LS7366 you don’t have to check the value of your encoder very often because there is 32 bit register to store the current value.
Regarding the encoder you choose,be careful with the resolution. Our robot have 1024 impulsion (4096 with quadrature mode) per rotation and it’s still hard to be milimiter accurate on long distance. I won’t expect something very accurate with only 16 count per rotation.