Obviously, I know this is a C# forum. However, I usually try to avoid reinventing the wheel. Check the lsp forum for discussion about this topic. I've attached a routine (Daps) that does this. I specify a template on the network that has all of our page setups in it, and then call daps from our enterprise mnl, so that the page setups get loaded in whenever a drawing opens.
While it's not C#, it is an easy implementation to a common CAD problem.
Change the .txt to a .lsp