For porting purposes, I think a good solution would be to split ClassBuilder into a front-end UI and a platform-independent back-end. The back-end would not be totally platform-independent but could be nearly platform-independent. Then there could be multiple UIs that are optimized (for users) for multiple platforms.
As a Windows user, my experience of platform-independence is that the UI is not something I am accustomed to. I assume that Linux/Unix users don't appreciate intrusions of Windows UIs into their environment. I am skeptical that one UI can satisfy everyone.
If the back-end is separate, then the various UIs would be relatively light and could be developed and maintained by people accustomed to the relevant environments. I am not sure what would be a good interface that would be available in all environments, but I am sure something can be done, especially since some of it would use conditional compilation.