Hi Fletch,
Thanks for getting back. I may have been a bit short in my explanation of how Channels can help you here. I still think Channels will help you achieve your goals here but there is some further advice I could provide to better help you.
The first thing I will mention is that our Channels feature will be a great help here if the deployment concept is the same between your different packages. Octopus is good at handling dynamic deployments, and is able to accommodate dynamic package names in your deployment process.
If the concept of your deployment between different packages is different, then the best suggestion would be to use separate projects for each different deployment concepts.
In your package step, you are able to dynamically select a package based of a variable. This is is most likely where you would need to start.
From here you could create a project variable like #{PackageID}
and assign multiple values which would relate to your different package names. You can then scope these different package name values to your different Channels. So when you create a release for Channel-A
it will use Package-A
as the package name. By default, Octopus will simply use the latest version of the package in its repository.
You can manually define the package version when creating the release, or you could use the Channels feature to configure version rules to handle this for you. This gives you more control if you need to deploy multiple different versions of the same specific PackageID
inside your project.
Does this sound like it’s what you are after?
I understand you may have more questions here, so please don’t hesitate to let me know if you do and I’ll do my best to help. 
Best regards,
Daniel