For a test, I created a x field on the preference table with "x" in it and another table with x field with "x" in it and created a many to many relationship.
What exact steps did you take to set up this relationship? You can set up the needed relationship simply by matching any field in the preference table to any field in the other table with the X operator instead of =. This only matches your preferences table to one table, so if you have multiple tables, you have to set up one of these relationships for each. (If this is a single user database, you might use global fields instead.)