There is several errors in your script, e.g. you should not give the loop iterator the same name as array itself. However your don't need any loop for this task, just put all array elements at once with special array index `@`:
value=(Choice1 "" Choice2 "" Choice3 "" Choice4 "")
whiptail --title "xx" --menu "choose" 16 78 10 "${value[@]}"
Notice empty string inside quotes `""` \- this is description required by `whiptail` menu option, without that you would treat `Choice` and `Choice4` as description:
Choice1 Choice2
Choice3 Choice4
what is probably not what you want.