Your file looks fairly clear but I'm not sure where you are getting your logic from that you describe in your post. I think your problem is that your business rule creates a circular dependency. Your new margin is calculated using the new price, but your rules say
If the new margin is 100% and the old margin is higher than the new margin then make the new price the same as the old price.
That means that if you adjust the price based on the new margin, the new margin will change, and you might have to change the price again, and then the margin will change again, and there you are in an infinite loop, which Excel sort of frowns on.
I think you need to rethink your business logic. There are ways to actually take advantage of circular dependencies in Excel and manage them but I do not have experience doing that, and am not sure that the right solution for this problem anyway.
You may also need to use something like Solver, which will provide an iterative solution to converge on a desired outcome.
Bookmarks