In the end Luffy should give the straw hat back to Shanks because it was a promise. But some of the Supernovae have a plan to kill Shanks, so probably Shanks will die before the end of the story.
So how will Luffy give back the hat? I think after having found the One Piece Luffy is going to travel a few decades back in time, for a yet unknown reason. So Luffy will give the straw hat to young Shanks.
Will Luffy meet Roger? No, Monkey D. Luffy will change his name to Gol D. Roger and become the pirate king once again. So Gold Roger is actually Luffy himself after having aged a few decades.
In the past Roger just appears through time travel and the straw hat doesn’t have a origin nor an end, it would be eternal, keeping on getting passed on between Shanks and Luffy/Roger forever.
Many of the events would have to be fated for the story to stay consistent, as Luffy/Roger said when he met rayleigh “It was a fated meeting”:

Roger already knew Rayleigh but Rayleigh met Roger for the first time. If you travel back in time everything has already been determined including your decisions, impossible to change the past due to fate.
I think the incurable disease Roger had is due to a rule which doesn’t allow the same person to exist twice, so he was destined to die before he gets born again. This would also explain why couldn’t travel back to save Ace. Because Luffy was already present at Ace’s execution and he’s not allowed to exist twice.
It also explains of course why young Roger looks very similar to Luffy and why many older people see Roger in Luffy. I believe long time ago Roger was drunk and told this bartender that he came from the future, and now the old bartender recognized him:

Now we also know why Red Hair Shanks risked his life to save Luffy: it’s because he knew the time travel story and he recognized that this boy could be his former captain. He even told Rayleigh about it:

It also explains why Gol D. Roger said that he already knows that Garp will take care of Ace: because he alredy saw it himself when he was kid Luffy.

The reason Garp actually takes care of Ace is because Ace is the son of Roger who is Luffy who is the son of Dragon who is the son of Garp. So Ace is Garps great-grand-son. When Sakazuki killed Ace Garps line of descendants got exterminated, which is why he lost control in that moment:

*Theory by Abstractness

Could a certain opponent be a hint to Luffy’s future?

Shanks has a only human crew