Ok - thank some genius for coming up with virtualization. I took the time to set up a clean slate (totally fresh Xen virtual machine) and tried the tutorial without adding *any* of my own settings or preferences. It worked.
Now to speculate as to why it worked. I believe that when I used 5500 for the UID and GID I messed up when I created the original group and user (Linux user and group not proftp user/group). If I did mess that up then the ftp user/group would not have had the proper permissions to do what it needed to do and therefore authentication failed.
As to why I had the weird situation with having to stop proftpd and start it again I think it definitely was leftover from my previous failed attempts to get a working proftpd install.
This being said I am going to just restore a backup that I made of the original virtual machine prior to me messing around with FTP (I love backups!) and start from there. I feel that I can certainly get it working now.
By the way - I highly recommend Falko's tutorials in general and if you are interested in getting Xen up and running for yourself I think you should use this tutorial:
After a good 3 days of research and work I created a backup script (that is not quite finished) that will work on the types of virtual machines that the tutorial helps you create. The main missing facility is a way to restore from the backup or to create a virtual machine clone based on a backup.
I have attached the script for anyone who wants to use it (as is with no warranties yadda yadda yadda). Also, use this set of commands to add the script as a bash command and create backups.
root@xen1 ~# cp xenbak.txt /usr/bin/xenbak.txt
root@xen1 ~# mv /usr/bin/xenbak.txt /usr/bin/xenbak
root@xen1 ~# chmod 0755 /usr/bin/xenbak
root@xen1 ~# apt-get install cdrecord genisoimage
Basically the code above just places the attachment (xenbak.txt) into your /usr/bin directory and renames it to xenbak so that it looks more like a "normal" bash command. Lastly it alters the permissions on the file to that you can actually execute the command.
You need sudo or root permissions to run the xenbak command.
Use this command to backup all the domains (running or not) using default options.
User this command to backup a single domain. (xen1.domain is the "hostname" of your domain. Hostname being whatever you entered for the --hostname=blabla part of the xen-create-image command.)
# xenbak -d "xen1.domain"
Sometimes you may want to backup a single domain more than once at different stages of configuration or usage. To customize the name of the backup copy use this command.
# xenbak -d "xen1.domain" -n "xen1.domain.before-ftp"
The following options can also be used to do some useful things (not all options specified inside the script actually do something yet):
-a (Backup all domains)
-c (Create a CD backup. Must put a blank or rewritable disk in the drive before it reaches this stage of the process)
-C (Compress each domain backup into a .tar.gz file - usually required if you want your backup ISO to be small enough to fit on a CD)
-r (Remove previous backups before backing up the domain(s))
-e (Erase the CD in the drive before attempting to write to it)
-j (Automatically eject the disk once the backup is complete.
-E (Spews out a bunch of output that tells you what options you chose.)
Here is the command I use to backup a single domain to a custom named backup and compress it and write it to CD after making sure the disk has been erased. It also ejects the disk once the backup is complete.
# xenbak -d "xen1.domain" -n "xen1.domain-snapshot1" -cCeErj
I hope this helps someone!