OK, for your first question:
Yes that's how you would handle the textbox events. In better languages you could do something like:
Private Sub txtClick() Handles txt1.Click, txt2.Click, txt3.Click etc
but in VBA each control has to have its own event handler but that can be a one liner call to a generic sub passing a parameter showing which textbox the event is for.
Naming the controls with a colon

) in the name isn't good. That's always going to threaten to cause issues. I hate to say that you really should rename them without any spaces or non alphanumeric characters except underscore. It will save you grief down the line.
And in any case naming them simply txt1, txt2, txt3 has the distinct advantage that you can loop through them with For i = 1 to MAX: Me.Controls("txt" & i) and the number each one's event is passing to the generic event handler can be used to get back at the textbox that sent it in the same way. Sorry to be the bearer of that bad news.
Second question:
Yes you will need to change the PopulateForEmployeeAndDate sub for your tables/fields and change that line that calls the sub accordingly . The "item not found in this collection" refers to your table not having an ID field (in the rs recordset - the first parameter). As I said before, feel free to upload where you're at with that.
Third question:
Having overlapping controls can cause visual issues in Access. Probably (mostly) it will be fine but you could see flickering or other strange things at times as a result. A better way I think would be to just change the colour of the background of each subform at runtime.
Fitting 10 of the subforms across the screen is going to be a problem. There are various ways I can think of to make them fit on the screen without having to scroll left-right and without risking exceeding the maximum form width but most require a lot of code and you've already got a lot on your plate so I think the best way would be to put them on a tab control in three, four or five per tab.