Sincere apologies for the delay.
When you are using page programing command it is recommended to that a multiple of 16-byte length and aligned Program Blocks be written. For the very best performance, programming should be done in full, aligned, pages of 512 bytes aligned on 512-byte boundaries with each Page being programmed only once. But from your description I understand that you are using PP command and writing only one Byte at a time which is not good. I think in your case when you are issuing PP command only one byte is being written and . You need to give WREN and PP command again to write second Byte which is not efficient and will result in wastage of time. It is better to write all 256 bytes in to the buffer ans write them at one go .
Please try writing more than one byte at a time and check if you are able to read more than one byte.
Thanks for the explanation. I did notice that writing all 256 bytes at once worked, but I didn't know why single-byte writes failed until you explained it.