Yes, to support Mikes thoughts, the only modal forms never behaving modal are top level forms. By definition. Inner objects don't modify the modality.
The WindowType property is defined to be modifably at design AND run time, but there is a limit to this. The init of a class on your form would need to do that before the form init, I assume. The last chance should be before the form shows, really, after that the WindowType will not accept changes. I think you can change the modality during hide before next show of a form. Christof Wollenhaupt has shown something along that lines in his blog.
Anyway, it never is just because some control on it is from a class library. That's ridiculous. You're suggesting you can't use forms with any controls on it, which are non native controls but come from class libraries: I can assure you a magnitude of 1000 users have used such type of forms modal and non modal as expected for a magnitude of 15 years and so surely alone from me, the concept of control classes not having that impact is proven many million times.
There must be some detail you didn't dive into, it's not happening due to the shallow look about the situation you have observed.
Bye, Olaf.