GPIF transfer (read/write) always starts with the FIFO pointer set to index '0' of the FIFO buffer. When GPIF read is triggered, the first byte will be read into index 0 of the FIFO. When GPIF write triggered the first byte in the FIFO will be driven on the GPIF data bus.
In case of a read function setting "Activate Data" in an interval latches data AND also increments the FIFO. So for a FIFO read there is no need to perform a Next FIFO Data to increment the FIFO pointer after/before you have read in a byte/word in an interval.
(FYI: It is possible to increment the FIFO pointer without latching the data by simply doing a "Next Data")
In the case of GPIF Write function. The FIFO pointer (for an OUT endpoint) is initialized to the location of the first data byte in the buffer (same as an IN endpoint). In order to write data from the FIFO to the external peripheral, you will do an activate data first in one interval. Doing this will result in driving the first byte in the FIFO on to the GPIF data bus and then you may do a Next FIFO Data on the subsequent interval. Doing an Activate Data and a Next FIFO Data on the same interval will result in incrementing the FIFO pointer and driving the new data (pointed to by the incremented pointer) and should be done in subsequent intervals. Therefore a Next FIFO Data is required in case of GPIF Write