Большая проблема с тем, что вы делаете, заключается в том, что журналирование не происходит автоматически, когда вы меняете элементы фреймворка, создавая их и вставляя в код. Это означает, что вы теряете функциональность браузера вперед и назад. Вы можете вручную журнализировать вещи, когда меняете страницы, но это просто хак, чтобы ваш подход к навигации работал.
Взгляните на Prism по адресу www.compositewpf.codeplex.com/, в частности, на метод MVVM для проектирования графического интерфейса, это сэкономит вам много времени позже. И помните, вам не нужно идти на хардкор, когда вы смотрите на MVVM, вы всегда можете отключить много «динамических» функциональных возможностей, если вы группа из одного человека
Также переключитесь на silverlight 3 и используйте приложение навигации. Если вы не можете, взгляните на спираль 0.3 , это обеспечит более ориентированный на жопу подход к навигации. ссылка дает действительно очень хорошую отправную точку, это статья из трех частей, я предлагаю вам прочитать все три, загрузить образец приложения и понять его.
По вашему вопросу могла быть написана книга, этого должно быть достаточно.