Which wireless technology should I use for medium range, many to one, bidirectional communication?
Depends on how much data you're sending, what packet structure you want to use, whether you want to spin your own PCBs or use a plug-in module, whether you need a low-power solution, etc..

For that distance, probably a sub-1GHz solution would work best.

I've had good results with the TI range of Value Line transceivers as they offload all the packet-handling, sync-words, CRC etc. from the microcontroller.  The modules also handle addressing, and have a "listen before talking" functionality - both of which could be useful with your physical architecture.  

Down sides:


You'd probably need to spin your own PCB - they have good reference
designs. 
No library for Arduino... but I'd personally rather use a
transceiver that manages all the low-level comms between the modules
so I can focus on the application.