Thanks for taking the time to post in the forum. I think that based on what you have described you are probably most of the way there. I would like to look into these issues one at a time though to make sure that we get through one completely before we look into another.
The first issue is:
Problem 1 - This products should show all 8 color choices, but instead it only shows 3 of them. At first I thought it was giving me the choices for the large handbag, but noticed only 2 of the colors matched the large and the other color is only for the smaller handbag.
You mention that the select list for the colors is coming from your db. How do you relate the colors to the different sized handbags? The recordset that populates the colors select list will need to be crafted in a way that it only pulls the colors for that particular size. This means that you will need some way to identify what colors are for what size in your db, then in the recordset that is pulling in the colors you will need to filter it on this criteria so that you are only getting the colors for that particular size item.
Also, this might help with part of the second issue. In the select list whatever you have specified as the value is what you will see when you add it to the cart. So if you would like to see the color when adding it to the cart you need to make sure that the value is set to the name of the color.