When the GPIO CLEAR register is not the same as the SET register, there is
no need to read the value before setting the appropriate bit on the
CLEAR register. We were reading the value and *then* setting the
appropriate bit. The value we were reading had previous bits set (from previous
clear operations, I suspect), which we were not clearing (before
setting the appropriate bits). This was resulting in other GPIO pins
on the same PORT being cleared unexpectedly. Doh!