error reporting was broken - first of all if using retropie_packages.sh manually from the commandline no errors set in $__ERRMSGS were ever displayed.
The second problem was any variables set by the retropie_packages.sh script was lost when run via "source" due to the pipe forcing it to be run in a sub-process.
if we switch to use process substitution this seems to fix it.