By most modern understandings, have to and must imply compulsion, should implies obligation without compulsion, and shall implies firm intention or commitment - or is just used in place of will to lend a certain air to the text or speech.
In contracts, standard documentation and various other specialised usages have their own understandings of the term. If you need to understand them legally, you should speak to a lawyer. I know in some cases shall is a stronger term than must, and in others it is the only acceptable thing because the document is describing what each party is committing to do.
To reflect "internal necessity or inner passion", I would say that you are talking about a compulsion, so "have to" or "must" are both appropriate. They are both (effective) modal verbs, and as such can theoretically be used in any tense, though not all modals exist properly in all tenses; "must" is often replaced with "had to" to express compulsion in the past or with "have to" to express compulsion in the future. They are also both used in front of the have of the perfect tense in order to indicate inference in the past, just to be clear.
I have to park there.
I must park there.
You have no choice but to park there, or are under some strong compulsion to do so. This is often used in a hyperbolic manner, to express a strong need or desire to park there (or whatever the verb is), without there being literal compulsion.
I had to park there.
This means you had no choice but to park there.
I have to have parked there.
I must have parked there.
This means that you may not remember that you parked there, but all the evidence suggests that you did park there.
I had to have parked there.
You may not remember that you had parked there some time in the past, but the evidence suggests that you did.
Using them about the future restricts you to have to rather than must, unless you use the futurate (the use of the present tense to talk about the future).
I will have to go to school tomorrow.
That's the future tense with the obligation/compulsion.
I have to go to school tomorrow.
I must go to school tomorrow.
That's the futurate.
Okay, "shall" and "will" are used interchangeably often, but there's a slight difference. See my post herein to read about it: What is the difference between shall and may.
As for "shall" and "should", "should" is the past tense, imperfect, and past subjunctive form of "shall", so they have several overlapping meanings. The modal shall comes from Old English sculan meaning to owe. First-person present indicative of sculan was ic sceal, meaning I shall, whereas the past indicative and past subjunctive were both ic sceolde, meaning I should.
The old future tense rule has the following paradigm:
Simple Future: I shall, you will, he will, we shall, you will, they will
Emphatic Future: I will, you shall, he shall, we will, you shall, they
shall
As for your examples above, "you shall not eat" is a command, i.e. "I order you not to eat", and is much more powerful than the simple "you should not eat", which is more of a suggestion such as "you ought not to eat." In your second usage of "shall", "you shall surely die" is far more powerful than "you will surely die." If you used "will" there, it would be more of a prediction that you're going to die whereas the usage of "shall" therein is prophetic: you are like a soothsayer; you can see into the future and so you are prophesying what shall happen. The usage of "shall" almost guarantees that the event will occur.
Here are some examples below using the formal English future-tense rule:
"I shall not be in school tomorrow." (a prediction)
"I will not be in school tomorrow." (you intend to skip school or you
intend on not coming)
"You will not eat that fruit." (a prediction)
"You shall not eat that fruit." (a command: "you had better not eat
it.")
"They will not pass." (a prediction)
"They shall not pass." (a command: "no way are they passing!")
"We shall die." (a prediction)
"We will die." (we intend to die; this is either suicide or a
guarantee of death)
"You will win the game!" (a prediction)
"You shall win the game!" (a prophecy or a guarantee of a future
occurrence)
Now, I want to reiterate that the examples above use the old future-tense rule whereon Fowler wrote his treatise in 1908. While some of the above usages still occur in English today although often inconsistently, many of them would be considered quite formal or outmoded. You should be aware of them, however, especially when you are reading the King James Bible or the English Standard Version, because this old rule is often followed in those versions of the Bible.
Best Answer
The modal verb "shall" does not mean "may", but it is a synonym for "will" and it is virtually interchangeable with "will"; however, there are slight differences in some cases and there is an old rule that still exists, particularly in England. The old rule says that the simple future looks like this:
H.W. Fowler once wrote a treatise on the differences between "shall" and "will". An example of his was that if a man yelled,
he would be crying for help; in this situation, the man would be drowning and in need of being saved, whereas if a man yelled,
then nobody would save the man because the man intends to die. In essence, a man who shouts this is committing suicide. That's what the difference is "technically". If your brother said about himself, "I shall be perfect for her," he was basically saying the equivalent of "I will be perfect for her." It was nothing more than his simple future prediction and he was using "I shall", which is technically more correct than "I will" in this situation, since it is a mere prediction and that's what the rules of English grammar technically call for, although it's a rule that is seldom followed. If he said to you, "You shall be perfect for her," he was basically saying, "You will be perfect for her"; however, he is being assertive about it. In essence, he was almost guaranteeing that you will be the perfect person for her.
The modal "shall" corresponds with "should" just as "will" corresponds with "would". In fact, "should" is the past tense, imperfect, and past subjunctive form of "shall" whereas "would" is the past tense, imperfect, and past subjunctive form of "will", so, essentially, you say "shall" all of the time when you say "should"; this is just its past tense, imperfect, or past subjunctive form depending upon the context wherein it may be used.
Also, grammatically-speaking, "Me and my brother were talking about a girl" is incorrect; it should say,
I hope that might have helped you out. Take care and good luck.