We use iterative, incremental, and iterative-incremental (with Scrum) life cycles using MS Project (in the past, now we are migrating). My experience is you have to make a separation between the life cycle, the method, and the representation of it. Think about what you need to show to your stakeholders and map it into the tool. That´s could be independent of the way your monitoring and control things.
In such projects where the scope is very fluid, you may be better off locking down cost and time which will then define how many feedback loops can be run.