Momentary buttons are minefields when using any query-response communication protocol. Such buttons must send a message to turn on the target when pressed, then send a separate message to turn off the target when released. Put those messages close together and you risk the underlying driver’s optimization (and possible lack of write verification) stomping on one message or the other. And the non-zero risk of packet loss / comm link breakage between one and the next.
In the short term, the best you can do is lengthen the minimum hold time to ensure the latter message is sufficiently later than the first to allow the first message to be fully processed and read back.
In the long term, you need to consider rewriting the PLC code to accept a set-tag operation that it clears itself. If you need reliable momentary operation, you need an arrangement that will transmit set-tag operations on a repeating interval, with the PLC noticing when they stop.
All modern PLCs use such protocols for their locally networked I/O gear, with repeating UDP packets or raw Ethernet frames, specifically because of this problem.