I don't like to unnecessarily create terminology, but these are key to my iteration methodology, and I recommend thinking in these terms:
Low-level changes: These are changes to individual cards or components.
Medium-level changes: Creation of a new rule or concept, or a small change to how a core game mechanic works.
High-level changes: Addition/removal/significant alteration of a core game mechanic. A fundamental change to how the game works.
Whenever you make a high-level change to your game, it will create a ripple effect, and necessitate many lower-level changes. This means that the balance of your game will almost always be off. That's not really a problem anyway.
Your earlier iterations will involve higher-level changes to the game, while your later changes will almost all be low-level changes. Your game isn't complete if you've recently made medium or higher-level changes.
Whenever you make significant changes to your game, also pare its content back to the absolute minimum. You want to test those changes in isolation, and more changes are probably coming. You don't want to have to update all your content each time.
My gangster game underwent a fairly high-level change around revision #260. I removed 40 of the game's 65 locations, and all its 23 unique player power cards. I added them back in later, once the changes settled down.
Only change one mid-level thing at a time. Your game is like a roof. It has an interlinked structure. You can replace one timber at a time, but if you replace more than one, it can all easily fall apart. After a playtest, you may see multiple things wrong with the game, or want to go in a new direction. Resist the urge to change it all at once. You might either be forced to go back to a previous version, or you'll forge ahead, and become lost.
Just change the most important thing, and tolerate the rest in the meantime.
Sometimes, underwhelming things will stay in your game for quite a while. A single change allows you to test the change in isolation.
You don't have to fix everything at once, anyway. Some nagging problems will fix themselves, or be obsoleted by larger changes to the game. Just leave them there, and be aware of them.
These days, my approach is that making a high-level change is actually the beginning of a new game. You're fundamentally changing your core, which is the game. This change ripples so much that you effectively go back to the beginning of design, because everything else has to change. As such, I generally don't make high-level changes to my games. I either pursue the game as it is, or I abandon it. If I return to it, I actually do start again.
Most times I've made high-level changes to a game have been erroneous.
There's one way you can safely work on your core, and make high-level changes. If you change a core system to something else, but it still has the same inputs and outputs, it won't blow your game apart.
In a recent prototype, the core action selection system changed a few times. One version had a track with tokens that moved, and became available or unavailable over time. Another had cards you could take, to choose your action, that would be returned at the end of the round. A later system involved covering up spaces on a board, and it later changed so that those spaces would never be uncovered again during that game. All of these systems were different, but they always resulted in the player choosing an action for their turn.
A redesign is a return to the beginning of design, by reappraising high-level choices.
Many of the people I see endlessly working on the same game have, in reality, been working on a series of related games, and constantly restarting their design.
You should acknowledge when you're doing a redesign, because there's a good chance it's time to abandon the game, rather than restart its design.
Another option I've done is the "intentional redesign", where I basically abandon my game within a few revisions, and make a new but similar game. This is much easier and more fun than fixing a problem I don't understand, and I'll eventually get lucky, and get the core right. Also, starting something new is exciting, while fixing something old is boring.
Sometimes, I have a great idea, but I can't get it to work. I abandon the game. The idea rattles around in my head for a long time, and I eventually come back to it. My personal experience of redesigns has been very poor. It might be different with you, but I strongly advise against redesigning. A good idea doesn't necessarily become a good game, and the redesigns often fall into the same pitfalls as the original. Just come up with a new idea.
If you add a system, make it similar to the existing systems. Avoid making extraneous systems.
In a friend's Wild West game, there were rows of cards you could buy, take, and fight. He wanted to add something else to the game, but I convinced him to just add more things in the card rows, or add more card rows.
If you create a system, choose something that mechanically and thematically interacts with as many of your existing systems as possible.
My farming game has trees, crops, animals, and other things. I was thinking about adding ships to the game, but realised that it doesn't really interact with any of those things, except maybe that the ships could cost wood from the trees. Instead, I added irrigation, as trees and crops use it, and animals need to drink.
I thought of having a horse, that would make some actions have bigger effects. Some actions can't be made bigger, however, so I'd have to go marking all the horse-relevant actions somehow. Instead, I created the Farmhand. This is a special token you can put on any space, and it lets you use that space again at the end of every round. It interacts with absolutely everything, and is very interesting in play.