It seldom works to take a white flour recipe and substitute whole grains, you need a recipe that is designed to work with whole grain flour. The bran bits in whole grain flour act like little knives, abrading and degrading the strands of gluten which are necessary to give your bread structure. Without enough structure, it’s heavy and dense.
The fix is to reduce the bran and/or increase the gluten. You can reduce the bran by reducing the proportion of whole grain flour, or by using a fine strainer to sift out the larger bran bits. Modern roller milling leaves some of the bran in larger flakes, so they sift out easily. You can use the flakes to coat the outside of the bread or just discard them.
To increase gluten, switch the white flour portion of your bread to one with higher protein such as bread flour (12-13% protein) or high gluten flour (14% protein). Vital wheat gluten is something like 75% protein and is sometimes sold in health food stores.
Whole wheat doughs often need more water and more yeast than white flour dough, both of which help provide more oven spring.
Rose has some lovely bread recipes over on the blog portion of the site, they range from 25% whole wheat to 100% whole wheat and have all the features necessary to produce high-rising whole grain loaves.