PIC16F628 PORTA Behaving oddly
Your problem is probably caused by the Read-Modify-Write effect, see page 31 of the data sheet. You should use a shadow register, set and reset the bits in that, and write it to the port. Delays usually help, so I find it surprising that it caused you problems. The fact that you could write bytes to the port and it works as expected indicates that it probably is an R-M-W effect.

Here is a good description of the problem.

The 18F PICs have latch registers for the ports, and don't suffer from the R-M-W problem.