Okay I think it's a bit more clear now. Like you probably already realized yourself, there are no "out of the box" solutions for this. So it needs some fair amount of customization and coding. I would approach it like this:
1) User starts creating a new record and fills in the fields on the "Stay" tab. "Stay options and activities" and "Total Price" tab/group are hidden by js (condition when rowid is empty).
2) After user has filled the "Stay" tab, he/she will press "Save" button on the form which you can rename to "Continue" or "Confirm data" for example.
3) Now on form submit, you create your repeat table rows with a PHP code in form php-plugin, run on New and onAfterProcess. And redirect to the newly created form record as the last part of your code. You can get your week id here according to the dates entered by the user using similar code what you have above. You need to take the arrival and departure date, take all the week start dates that fall between these dates, look up the week id and insert it to the repeat table among with the other data.
4) So, now you have the "Stay options and activities" tab visible with the newly created repeat rows as the hiding in the clause 1 was done only for a new record. In the repeat group you probably would want to set the rights for adding and deleting row to a access level "No-one" so the user cannot add or remove rows. If you do not have the "No-One", just create new Joomla access level and do not assign any user groups to it.
Also, you would want to set the date elements access settings on the "Stay" tab like "Form (edit)" to "No-one", so the user could not make any changes for the dates which may cause the need for updating the repeat row amount.
5) Now the user fills in the repeat group and can click on form's save (Continue) button again. User is now redirected normally to the list or you can have another redirection as form plugin (run on Edit) to redirect anywhere you like. And you can also add a custom Joomla system message after redirect, something like "Booking successfully confirmed...".
As you do not have too many elements on your form, I recommend keeping them all on one page for clarity (use normal bootstrap) template. So e.g. the user would not have to click on "Total" tab just to see the cost.
This is probably not the one and only way to do it, just my ideas as a long time Fabrik user. And of course the whole workflow has not been tested, so it may need some adjustments on the go.