From your initial description, you are facing issues with a query that contains or otherwise presents averages, which is an aggregate function. You also have computed fields.
The query will never be updateable due to those two factors. The GROUP BY actually doesn't make a difference with respect to updating because it only affects order of presentation, not actual content. But the aggregation of data and use of formulas is fatal to this process.
What you do in this case is to recognize that a form can do more than a query can do. A form can, on Form_Current event (e.g.) compute averages using the DAvg() function and can compute formulas, then fill in UNBOUND text boxes to show you what you wanted to know. So if you REMOVE all aggregates and formulas from the query and instead compute those things in the Form_Current event, you still see what you want, but the rest of the query can be updated. If in fact you are working with a one/many JOIN, the form equivalent is a parent/child form structure, and that should allow you to keep relevant records together where you can see them.
So this is a "divide and conquer" approach to your problem. Do the aggregates and formula in the form. Do the gathering of data in the query. Do the presentation to your users through a form.