will have is a way of discussing the future or future intent, either:
(a) with respect to having something, e.g. "I hope they will have fun this evening", or
(b) followed by a past participle, to form the construction known as the future perfect, e.g. "after two more years I will have lived here for five years".
There's also "will have to", which expresses future obligation, e.g. "I will have to give him a call". (It's future in the sense that you haven't called him yet, but the obligation may already be felt and sometimes it may require fulfilling imminently.)
shall have has similar uses.
"Will" and "shall" are modal verbs. "Will have" and "shall have" are not modals. Rather, each consists of two verbs, one modal ("will"/"shall"), the other non-modal ("have").
You asked, "If these are modal verbs, can I use them in both the past and present?"
I find it difficult to see how you can use "will have" and "shall have" to discuss anything other than the future - although in the case of "will have to" the obligation may already be held, and in the case of "will have" + past participle, you may already have begun but not completed the action, as in "if I score two more points, I will have won this game".
You also asked about "may have". Yes, this is also a valid expression. It can be used in various ways:
- To request or grant permission: "You may have a biscuit."
- To express a wish: "May you have a lovely holiday!" This is not a common usage, though.
- To talk about possibilities: "You may have a cat some day"; "He may decide to sue you."
- To talk about potential obligation: "You may have to feed the cat if I forget to do so."
- To talk about possible completed actions: "He may have left us a note. We should check."