Ok, this post will contain some bleeding obvious stuff and perhaps some stuff that you did not think of - who knows?

Basically what you need to think about is why it is neccessary to save and reapply states and consider what altertaives are open to you.
The reason you save and reapply states is two-fold in this case. The first reason is because CEGUI only sets the bare minimum of states (for performance reasons) and
expects all other states to be at their default values. The second reason is that the game you're hooking in to does not expect some states to change in the middle of the rendering process.
Now, if you're not resetting all states (or applying a specially made 'defaults' state block) prior to calling CEGUIs rendering function, and CEGUI is being rendered correctly, it may be safe to discount the first reason above - and infact if you're not doing anything in that regard and have no issues, you have implicitly already done just that

The second case is obviously neccessary as is evidenced by the issues you're seeing when you do not apply the state block. So you need to consider alternatives to the current recipe of:
1) Save all states
2) Render CEGUI
3) Restore all states.
First, I would consider the possibility that there is a fair chance that each time arriving at step 1, the states are the same or very similar. As such, it might be possible to save the states the first time and then just reapply that same state block (step 3) each frame - skipping the step of creating the state block, which IMO will cause a large part of the hit. You might have to account for different stages in there though - such as being at the pre-game menus and in the actual game play or whatever. Note that I'm not saying this will definitely work, I have no idea, I'm just sharing my thought process with you.
Second, if saving all states is causing a hit, you might have to do some work (could be a lot of work) and discover precisely what states you need to save and be selective about saving and resetting just those significant states - you might do that by querying the states, or you might do it by creating state blocks more selectively.
Third, and maybe optimal solution is to have some combination of the things I've mentioned in the two paragraphs above.
Hope this gives some ideas about the kind of things you need to be thinking about.
Good luck,
CE.