Hi,
You just have to ask me.

Odds are that you have no PCIe switch between the computer and the device (and probably, it wouldn't matter so much anyhow) so there's only the device and the root port involved. So the reason your Maximal Payload is 256 bytes is your computer, basically.
In fact, until quite recently, the common figure was 128 bytes, but newer motherboard have improved.
This way or another, there isn't much you can do about it. I'm not sure if there is any hardware with 512 bytes out there. Or if it's worth bothering looking for one.
Now let's get back to the beginning of your note: Reading faster than writing. What were the figures you measured? Was it host-initiated I/O or DMA?
Or maybe it isn't that important to go down that road. The Maximal Payload rules for both read and write payloads. So I pretty much doubt it's to blame anyhow.
Regards,
Eli