However, I can't help utilizing them alot for those immortals are so handy
Some people even raise an army almost exclusively consists of bodyguards.
If it's hardcoded so there's not much we can do ( I believe so ), although it's totally unrealistic, then how about just reduce the number of general's bodyguards so they would not have a substantial effect on battle?
For example, a Roman consul should have a bodyguard of 16 lictors, a praetor 8, etc (correct me if my memory fails me ).
If you want to protect your general, just use any troop you prefer to do it.

And this way we can solve another problem which bothers us I believe, that it costs too much time for a general to move across the map.
If we make the bodyguard not so overpowered, then we can just give the general enormous movement points, so a roman general can arrive at the front line in Spain and start commanding battles immediately in one turn when elected in charge of that province as proconsul or praetor in Roma city, and return to Roma when his term expires to get another position allot to him. This can reflect the fact that a general with his attendant can move very quickly while a great army must march much more cautiously and so much slower.