I have numerous Ubuntu VMs running on my Windows 7 desktop. One of them has several months of uptime (greater than the uptime of the Windows 7 host). I use these for software development running Eclipse, running unit tests and running Selenium Firefox functional tests.
Most of the Ubuntu VMs are Lucid desktop or Lucid server but the last 4 were Precise Pangolin desktops. I have never encountered problems like you describe. Basically, create a VM, I open Settings and review everything, then I run through the normal install from CD (actually from a .iso file which has been checked with the published checksums) and I use expanding filesystem, usually set to 32G even though I only need a fraction of that. After the Ubuntu install and reboot, I always install the Additions from the VB Devices menu. Only after rebooting again, do I install special tools and things like OpenSSH Server, vim, Oracle Java.
Did you do your install from a physical CD? If so, there may be I/O errors that corrupted your install.
How much spare hard drive space do you have in Windows 7 on the disk that holds the virtual Ubuntu hard drive? Even expandable virtual drives can't make disk space out of thin air.
Your reference to more than one hard drive device puzzles me. Are you using multiple virtual drives to practice administering something like LVM? If the virtual machine is just there because you need to run some Linux software, then I recommend that you always define only one virtual hard drive, and make it a SATA drive. Then when you install Ubuntu, tell it to use the entire hard drive.
Also, if you don't have a specific technical reason to use 11.04, then I strongly suggest that you install Ubuntu 12.04 instead. That one has long term support which means that you don't have to worry about the repositories going away.
If you are trying to boot from another disk partition, I believe you need to use the Windows pathname such as \Device\Harddisk0\Partition2 and you need to create a VMDK file which contains the configuration and points Virtualbox to the raw partition.
You can't do this in the GUI. You need to run
VBoxManage internalcommands createrawvmdk to create the special VMDK file.
I did this successfully with Windows XP a few years ago but I don't know if it is still possible with Windows 7 and newer Ubuntu.