Your loop is generating a TwiML response with multiple GATHER verbs, which will not work. Move your loop into the GATHER element so you are generating one GATHER verb but multiple SAY verbs nested within GATHER. I think that will get you up and running.
EDIT: Additionally, you'll have to break this into two steps. 1) Select the message. 2) select print, reply or delete.