The best is you attach the taxonomy Product Categories as well to farms.
Each farm should then be tagged with the parent terms of the child Product Terms.
This means if your Product Categories are like this:
Parent one
-- Child One
Parent Two
-- Child Two
and your Farm's Product is tagged with:
-- Child One
Parent Two
-- Child Two
you need to tag the parent Farm with:
Then, you create a view for the taxonomy.
You will add a Query Filter for "Taxonomy is set by the page where this View is inserted"
It's Loop will display:
Now create another View where you query the Products Post Type and add a Query Filter for "Select posts that are children of the Post where this View is shown."
It's Loop contains:
Now head back to the Taxonomy View's Loop and add the above created Posts View to the Loop:
[wpv-taxonomy-title]
[wpv-view name="Products by Farm and Cat"]
Then, insert this Taxonomy View in a Farms Post
You will see a list of Categories (parent), under each a list of the products, you can add the Terms to each product by:
[wpv-post-taxonomy type="product-category" format="name"]
But this approach has many flaws. One is that it duplicates content in the output.
I suggest a complete different approach instead.
You want to group your Child Posts belonging to that Parent Post by a Taxonomy.
You cannot order a View's Output by a taxonomy in the backend.
Only Fields are supported.
That would suggest to use a Custom Field instead of a Taxonomy to group your Products.
Would that require a lot of refactoring on your site?
Then you can order the output by that field and even fall back to a native post meta data in case the field crosses values with another post.