You have a number of issues. To start, you are determining visibility based on the data element isHidden, which you have initialized as false and there's nothing in this code that changes it. I suspect that you are trying to change it in the computed property visibleHeaders, but that's not how computed properties work; the computed property returns a different object with isHidden as a property on that object, so you're referencing something different. Furthermore, you don't want to use v-if on your v-for loop. Instead, you should use the computed property to filter for the desired elements and iterate on that. Even so, based on your other recent posts as well as what you've indicated here, the filtering should be happening on the back end and so there should not even be a need for a computed property. I also don't see a method to toggle visibility... I assume that's setVisibility but you haven't shared that code.
Like I said, you have a number of issues. As I had indicated here, manage the data structure on the back end and allow the vue component to consume it based on the data it receives. There's no need to apply any filtering on the front end if your data is structured to meet the need on the back end.