I converted your rest sensor to a command_line sensor and then used jq to change the structure of the response. I also limited it to 7 days because HA does not like the length of the response for the full season.
command_line:
- sensor:
name: MLB Phillies Schedule
unique_id: mlb_phillies_schedule
command: >-
curl
{% set start_date = (now().strftime('%m/%d/%Y'))[1:] %}
{% set end_date = (now() + timedelta(days=7)).strftime('%m/%d/%Y')[1:] %}
-s -L 'https://statsapi.mlb.com/api/v1/schedule?hydrate=team,stats,broadcasts,person,probablePitcher,lineups&fields=totalGames,dates,games,gamePk,status,statusCode,teams,away,team,id,home,lineups,homePlayers,fullName,firstName,lastName,primaryPosition,abbreviation,awayPlayers,gameDate,leagueRecord,wins,losses,pct,teams,franchiseName,clubName,probablePitcher,fullName,firstName,lastName,primaryNumber,currentAge,boxscoreName,stats,type,displayName,group,summary,strikeOuts,whip,strikePercentage,pitchesPerInning,strikeoutWalkRatio,strikeoutsPer9Inn,walksPer9Inn,runsScoredPer9,hitsPer9Inn,mlbDebutDate,pitchHand,code,broadcasts,name,type,language,homeAway,callSign,dayNight,venue,name,nameSlug&sportId=1&teamId=143&startDate={{ start_date }}&endDate={{ end_date }}' | jq '{ "games_list": [ .dates | .[] | .games | .[] ] }'
scan_interval: 86400
value_template: "{{ value_json.games_list | length if value_json and value_json.games_list is iterable else 0 }}"
json_attributes:
- games_list
You may want to use your date template again. I don’t know if this is a bug or expected behavior, but I needed to start the command with curl and then insert the template before continuing with the rest of the command. Otherwise, HA was trying to use the first line of the template in the command. 
Here’s my flex-table-card result. I’m not using all the data you are, but if you use games_list for your data, you should just need to remove games[0]. from your modify code.
type: custom:flex-table-card
title: Phillies Upcoming Games
entities:
include: sensor.mlb_phillies_schedule
columns:
- name: Date
data: games_list
modify: |-
new Date(x.gameDate).toLocaleDateString('en-US', {
weekday: 'short',
month: 'numeric',
day: 'numeric'
}).replace(',', '') + '<br>' + new
Date(x.gameDate).toLocaleTimeString('en-US', {
hour: 'numeric',
minute: '2-digit',
hour12: true,
timeZone: 'America/New_York'
})
- name: Game
data: games_list
modify: |-
`${x.status.statusCode === 'P' || x.status.statusCode === 'S' ||
x.status.statusCode === 'I' ?
`<img src="https://www.mlbstatic.com/team-logos/team-cap-on-dark/${x.teams.away?.team?.id}.svg"
style="width: 20px; height: 20px; vertical-align: middle; margin-right: 5px;">
${x.teams.away?.team?.abbreviation || 'N/A'}
<span style="font-size: 12px; color: gray;">
(${x.teams.away?.leagueRecord?.wins || '0'}-${x.teams.away?.leagueRecord?.losses || '0'})
</span><br>
<img src="https://www.mlbstatic.com/team-logos/team-cap-on-dark/${x.teams.home?.team?.id}.svg"
style="width: 20px; height: 20px; vertical-align: middle; margin-right: 5px;">
${x.teams.home?.team?.abbreviation || 'N/A'}
<span style="font-size: 12px; color: gray;">
(${x.teams.home?.leagueRecord?.wins || '0'}-${x.teams.home?.leagueRecord?.losses || '0'})
</span>`
: ''}`
- name: Probable Pitchers
data: games_list
modify: |-
`${x.teams.away.probablePitcher ?
`<a href="https://www.mlb.com/player/${x.teams.away.probablePitcher.nameSlug}" target="_blank">
<img src="https://midfield.mlbstatic.com/v1/people/${x.teams.away.probablePitcher.id}/silo/60?zoom=1.2"
style="width:20px; height:20px; border-radius:50%; margin-right:5px;"></a>`
: ''}
${x.teams.away.probablePitcher ? x.teams.away.probablePitcher.lastName : 'TBD'}
${x.teams.away.probablePitcher && x.teams.away.probablePitcher.stats && x.teams.away.probablePitcher.stats[3] ?
'(' + x.teams.away.probablePitcher.stats[3].stats.summary + ')' : ''} <br>
${x.teams.home.probablePitcher ?
`<a href="https://www.mlb.com/player/${x.teams.home.probablePitcher.nameSlug}" target="_blank">
<img src="https://midfield.mlbstatic.com/v1/people/${x.teams.home.probablePitcher.id}/silo/60?zoom=1.2"
style="width:20px; height:20px; border-radius:50%; margin-right:5px;"></a>`
: ''}
${x.teams.home.probablePitcher ? x.teams.home.probablePitcher.lastName : 'TBD'}
${x.teams.home.probablePitcher && x.teams.home.probablePitcher.stats && x.teams.home.probablePitcher.stats[3] ?
'(' + x.teams.home.probablePitcher.stats[3].stats.summary + ')' : ''}`
Hope this helps! Thank you for your rest sensor details.