It would appear that there is a bug in the current pm2 implementation.
The bug appears when you try to run pm2 in a non root account. Somehow, during boot and while pm2 is loading, it appears to be examining the incorrect folder for the existence of a dump.pm2 file (which holds the desired application list and parameters). When it doesn't find the file, it makes note that it needs to create one. Later, after switching into the appropriate user account, it then writes a blank dump.pm2 file which overwrites the previously created one.
This GitHub submission identifies the issue:
https://github.com/Unitech/PM2/pull/1120/files?diff=split
You can also temporarily remedy the issue by making making the dump.pm2 file immutable after you save your desired startup application list
i.e.
pm2 save su cd /home/{pm2useraccount}/.pm2 chattr +i dump.pm2