Variations in pulses generated and read by a uC
I understand that as long as my software generates 1ms output from a
  pin(PIC),the input at a pin(LPC1778) also must be 1ms


Yes, but the LPC1778 is sampling the level every 200us so there will be an effective jitter of 200us. This is only 20% of the bit time so you should still be able to accurately determine the bit value. However, to do this you need to detect a transition (from '1' to '0' or '0' to '1') in order to determine the start and end of each bit. If you don't then your 5 samples could straddle 2 bits and the result may be indeterminate.  

So the full receiving procedure would be:-


take samples until a '1' is detected (now you are inside a '1' bit)
take samples until a '0' is detected (now you are at the start of a '0' bit)
take 5 more samples. The 2nd sample in this group should be '0' (if not then go back to 1.)  
Continue taking groups of 5 samples, testing the 2nd sample in each group and storing its bit value until you have 32 bits. 


In order for this to work properly the receiver must continue to test in the middle of each bit until it is able to synchronize to another 'start' bit (1->0 transition). Bit rate error will accumulate, so the more bits that are received between each 'start' bit, the more accurately the receiver must track the sender's bit rate. 

To accurately read each bit the sending and receiving bit times must be within 400us of each other, which is a tolerance of 0.4/32 = 1.25% for 32 bits. This should be OK if both MCUs are clocked by a crystal or ceramic resonator, but may cause trouble if one or both of them uses an r/c oscillator.  

Now compare this scheme to the asynchronous signal generated by a UART. The only difference is that it adds a start and stop bit to each byte for synchronization, instead of using the data bits themselves.