I want to create a list to track complaints progress and results but limit who can see what items. In particular I want to hide 1 item from a particular group but leave it visible for other groups who have access to the list. All these people have permission to change items so any solutions that are related to amending views won't work because they can change the views themselves if they want to.
Use Audience Targeting.
That's the Out of Box feature available to meet your requirement. Create two separate views. In one view you give access to all groups while for other view you edit the page and in Audience targeting for that particular view, you list down the groups name you want to give access to.