Latch is a kind of memory of one bit.

Let's use the picture in manual:


![Generic I/O Port Operation][1]
 

When you write a bit in a I/O pin, you're storing this bit from Data Bus to the Data Register ([D-FlipFlop][2]). If TRISx of this bit is 0, so data from Q of the Data Register will be in the I/O pin. Write in LATx or PORTx is the same. See below in red:

![Generic I/O Port Operation Write][3]


On the other hand, read from LATx is different of read from PORTx.

When you're reading from LATx, you're reading what is in the Data Register ([D-FlipFlop][4]). See picture below in green:


![Generic I/O Port Operation Read LATx][5]


And when you read from PORTx, you're reading the actual I/O pin value. See below in blue:


![Generic I/O Port Operation Read PORTx][6]


PIC uses read-modify-write to write operations and this can be a [problem][7], so they use this shadow register to avoid it.


  [1]: https://i.sstatic.net/iCogk.png
  [2]: http://en.wikipedia.org/wiki/Flip-flop_%28electronics%29
  [3]: https://i.sstatic.net/E2xz3.png
  [4]: http://en.wikipedia.org/wiki/Flip-flop_%28electronics%29
  [5]: https://i.sstatic.net/Qluvl.png
  [6]: https://i.sstatic.net/wdvIE.png
  [7]: http://marcansoft.com/uploads/readmodifywrite.pdf