That first calculation is an interesting challenge.
Because of the X operator in your relationship, there's no way via the relationship to get the calculation to consistently refer to the correct parent record. Using my other option, setting up a list of the two key values would have the same limitation.
I'd set a script trigger with the OnRecordLoad trigger to run this script:
Set Variable [$$CurrentTeam ; Value:: Team::TeamID]
Then your calculation can use the data in $$CurrentTeam to correctly produce an "W" or "L" result.
Case ( $$CurrentTeam = HomeTeamID and Score1 > Score2 ; "W" ;
$$CurrentTeam = HomeTeamID ; "L" ;
Score1 > Score2 ; "L" ;
This calculation assumes that ties are not possible in this sport or you'd need one more pair of parameters in this case function.
Your back to back game calculation can be done by using GetNthRecord function to check the game date of the previous record. Something like:
If ( ( GetNthRecord ( GameDate; Get ( RecordNumber ) - 1 ) + 1 ) = GameDate ; "B2B" ; "" )
Make this an unstored calculation.