Definitely, go with a more traditional pricing table layout as mentioned by @ivm
Since you have 1/3rd of customers buying the Business version, it is likely that you are pricing it too low and leaving money on the table. The only way to know this is by testing.
What I would do is have three tiers named accordingly to be “aspirational”. The plan names should define your customers. Regarding feature differentiation, if you cannot think of adding any features to differentiate the Enterprise version, simply keep the same features as the Business one, but add premium support only to Enterprise.
- Hobby/Freelancer: $99
- Business $199
- Enterprise $499
Once done, you basically wait and watch and see if someone buys the business version at $499.
If no one does, you should not have lost anything by doing this test as people will still be buying the $99 and $199 versions. However, if people do purchase it, then you know that your market is not as price sensitive as you think. (Yay!). As a beneficial side effect, you may also find that the number of people purchasing the $199 version might significantly go up, due to price anchoring done by the Enterprise plan.
I am not your target market, so do take all this with a grain of salt.
I am overwhelmed with the options - desktop software, web-based software, API and components. It is likely that your target market consists of (i) business owners who would use the desktop/web versions and (ii) developers who would use the API/components. You should have a separate pricing page for each of the users.
If your main business is selling the desktop software and you are venturing into the web, then I suggest only showing the 3 plans for desktop software and having links at the bottom that say “Looking for a web version?” , “Looking for API/component?” and the links take the user to the appropriate page. Later on, if you find that you want to promote the web version more than the desktop version, then you simply switch them.
Hope that helps.