when you try to insert an iAssembly factory, it should open the iAssembly table and allow you to select the specific member. If the member does not yet exist (i.e. it appears in the table, but the member hasn't been generated), then the iAssembly will attempt to generate the needed member. I believe this is your problem: the member doesn't exist, so the iAssembly tries to create it, but the iAssembly is in a library so it isn't allowed.
Open the iAssembly, expand the members under the table, RMB on the member you want and Generate. This should now create the member. When you go back to the main assembly, you shouldn't have problems inserting the iAssembly.