However I do not understand why PORTA does not work and LATA works in this "example". Could somebody try to explain that shortly
Setting or clearing port bits directly reads the whole port, alters the bit in question,
the writes the whole 8-bit value back to the port.

Example (for 18F parts);

HIGH PORTB.0
HIGH PORTB.1
HIGH PORTB.2, etc

And PBP will generate assembler code something like;

bsf PORTB,0 ; reads the whole port, sets RB0, writes the 8-bit value back to the port
bcf TRISB,0 ; make RB0 an output (now RB0 begins to go high)
bsf PORTB,1 ; reads whole port again (note that RB0 may not be high yet because this happens fast)
bcf TRISB,1
bsf PORTB,2
bcf TRISB,2, etc.

What happens is when RB0 goes high, then it's made an output, it may take a while
before the actual voltage output on RB0 goes high - due to external capacitance.

If the voltage output on RB0 is below the PIC logic 1 input threhold, when the port was
read on the 2nd bsf instruction, it gets read back in as zero, and a logic 0 gets output
back on RB0. It read the port, modified only RB1, and wrote the new value back to the
port. I.E. That's R-M-W.

When you use the LAT registers it doesn't cause the whole port to be read back, modified,
then written again.

The faster the core is running, and the more external capicitance there is, the more you will
have problems with read-modify-write.

Microchip added the LAT registers on 18F series primarily to eliminate this problem.