It isn't specific to a particular page/template, just the "Profile Box" widget. I have tried on multiple pages (and new pages, and new ad-hoc templates) in different zones. Though all of them are Page Editor zones, as we don't use any User zones or Group Admin zones.
As for the code behind, I have been investigating it and trying to find anything. The Webpart inherits from multiple classes, which comes from CMSAbstractWebPart but adds in IoC into the process, which we use on almost all of the web parts on the project. All of these allow for Content Variants.
We have various Services and protected properties on the "Profile Box" widget which I thought could be why it could, however there are other widgets on the site using these services and properties that allow for Content Variants to be created. This is where I was theorising about the possible logic for Variants being unavailable is there were no Widget Properties to add, however the "Profile Box" has 6 configurable settings to set when initialized (1 of which is required).
Something I hadn't checked, as I was focussing on the Widget side of the issue, I have been able to add the "Profile Box" as a Web part into template and can make variants of that. So it's only on the Page tab that it's not showing the options.