I found if I define the array before the GetListItems operation like you did, and push the values inside the .each() function, it works. However I have not done the return statement inside SPServices. I have put it after the SPServices call.
Also, I believe you might be able to replace the statement incrementing k, by putting k inside the function parameters. As in .each(function(k) {