I have heard several expressions e.g. "Holy Shit", "Holy Jesus", "Holy Mother of God" even "Holy Zeus" et al for cursing purposes in different English movies. Some of the phrases are relevant, but sometimes I hear innovative and newer additions with "Holy" for cursing purpose. So can I assume that people don't stick to original phrases only in conversations and that is why I can hear newer terms and that is perfectly understandable in the contexts?
Are you familiar with the TV show Batman from the 1960s? Batman's sidekick Robin would say, “Holy
________, Batman!” rather regularly during the show, illustrating how versatile that catch-phrase can be. In fact, you can find a rather comprehensive list of his utterances at the holysmokesbatman.com website (sorted in alphabetical order, even, with links to audio files, too!), and you can read some commentary about the overuse of these expressions in this blog:
What does Robin say to Batman? "Holy [insert word here] Batman!" Robin used this phrase whenever he was confused or surprised by what was happening in a particular scene. This phrase was hugely popular on the 1960s TV series, but the writers used it too much, and it became the show's demise, even though it slipped into popular culture.
Nowadays, the first one you listed might be most common; some less profane versions include "Holy mackeral!" and "Holy smokes!" I've also heard "Holy guacamole" on occasion, used obviously for its rhyme.
So, you're correct, you can insert just about anything after the word holy to express surprise or astonishment. Etymonline.com reveals that this usage has been going on for well over a century:
used in expletives since 1880s (e.g. holy smoke, 1883, holy mackerel, 1876, holy cow, 1914, holy moly etc.), most of them euphemisms for holy Christ or holy Moses.
Some of the words used in such expressions are well-established, but, as the old Batman series showed, usage need not be restricted to customary words. Either way, though, the expression can easily become overused and trite.