I noticed that you don't really have one-to-many relationships between the table [Shelf Items] and the tables [Keywords], [Articles], and [Authors]. These relationships appear to be set up as a many-to-many relationship, as designated by the intermediate tables between them: [Keyword Matches], [ArticlesShelfItemMatch], and [Author Matches].
I also noticed that there is not a primary key in these intermediate tables (sometimes called "mm" tables for "many-to-many".
I discovered that the "mm" tables ([Keyword Matches], [ArticlesShelfItemMatch], and [Author Matches]) didn't have a primary key when I created a subform and tried to link the subform with the main form.
I could be wrong, but I think that this is why you're having trouble getting the subform to link with the records on the main form.
I believe you are on the right track by implementing the many-to-many tables, but their design may need to be adjusted (make one field in each table a primary key)
Here is an article about many-to-many relationships that may help:
http://www.techrepublic.com/article/...access/5285168
After looking through this, and after assigning primary keys, you may have better luck at linking your subform(s).
By the way, nice initial design on the database! And welcome to the forums!