If you see the PCB silkscreen, the MCU IO starts with IN1..IN7- that makes 7 bit input. Either the bit0 is missing or bit 8 is ignored. If bit 8 is ignored, it would not make any difference because bits 5-7 are not used by the controller. Normally bits are labelled from 0-7 (well, that is the most common; RB0...RB7) but you also must consider the endian-ness. The fact that the motor is vibrating clearly suggests that the sequence received is not correct. You also need to see the motor connections (try to reverse one of the A1-A2 OR B1-B2 connections).
Also reduce the delay- 500ms is very long and just try 50ms or so.
- - - Updated - - -
I guess that ABCD are LEDs that are showing the pulses. In that case, INCREASE the delay to 1-2 sec and see whether the correct sequence is being output. If the correct sequences are coming, then decrease the delay and check the motor connections. I guess the centre pin is the ground- check with a multimeter. Also see that the pulses are being referred to the 'correct' ground. One wire from the PIC must connect to the ground in the board...