Assuming your UpgradeCode guids and versions are correct, you may be cross context; a per user install cannot upgrade (or detect) a per machine install, and vice versa. If you do the install with a verbose log then it may tell you that FindRelatedProducts didn't find one in your install context.