Look for the missing ocx-files with google. And if nothing works, check out Skeetendo Inc. There ought to be some tutorials there that can help you.
P.S
I wouldn't advise to insert the same sprite twice just for modifying the shiny sprite palette. The games work so that they pick up the sprite used by that pokemon with routine A, and then routine B decides whether to take the normal or shiny palette of that pokemon through one data table.
In other words, the sprite is stored only once while there are two entries of the palette - normal and shiny.
Besides, if that shiny Charizard sprite has the same palette as the original one in the game, you won't even have to do anything about it. The shiny palette won't change when you insert the sprite of normal/unshiny one.
Though palettes can be worked with a hex editor all the way. Palettes in GB/C are stored as 16-bit data (16 bits = 2 bytes) so that the first five bits define "How Red?", the next five bits "How Green?" and the next five "How Blue?" , so "RGB" 16-bit palette form. The remaining sixth bit (because 5 + 5 + 5 = 15) is unused.
(And don't worry if this doesn't make any sense just yet! It "shouldn't" :P )
Look for Sawakita's RGB colour picker tool in Skeetendo Inc. You can choose a 16-bit RGB color and it shows the 16-bit value of that in hexadecimal form (big endian format!). You need to rotate its two bytes around to form a 16-bit little-endian data set, and then, it's ready to be written like that in the game.