I noticed this bug a while ago. When the UDP function in the WiFi shield responds to a packet, it gets another socket, and that socket uses another port. That causes problems with the sender device if that device expects the packet from the port it sent the packet to.
It seems your computer is not using port 9091 to send packets as you expected. I have always seen the correct port from my computer when using the remoteIP() call in the Arduino. I use my own UDP C code for the PC (Linux) and it works well.
I have abandoned the wifi shield for an ethernet shield and a wireless router. Too many bugs in the wifi shield firmware.