You should be using Deploy, not CurWeapon. Deploy is the right place to put your code, you will set exactly after the game.
Now, I think that the problem is that you are using pev_viewmodel. When using pev_viewmodel you have to allocate the string. If you don't want to allocate(EngFunc_AllocString) manually, you can use pev_viewmodel2. If you choose to allocate be sure to do only one time in a place like init and save the value.