I found two issue about maritime food.
When city grows up by maritime food, food won't affect by "Food Stored" capability.
Such as 39/44 food now, 15 food from terrain, pop eat 12 food, 3.2 food from maritime CS,
food will be set to 1/51 next turn, without food stored 40%(From aqueduct).
(1 food instead of 1.2 is for city:GetFood() return integral.)
Pop -1 due to starvation will happens before maritime food.
When the city's pop will -1 in the next turn if without maritime food,
pop still -1 in the next turn, then city receive maritime food.
(Happened when city just grows up, and I replaced some farms with trading posts.

)
And I found some bugs in v4.19 about maritime food.
Tuner print those info.
\Balabala...\Unofficial Patch\UP - Event Registration: INFO GiveMinorCivAllianceRewards()
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Delhi: 67 +8.512
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Delhi: 76 +3.2
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Delhi: 79 +3.2
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Delhi: 82 +3.2
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Delhi: 85 +16
Those info are printed by \ Unofficial Patch \ UP_General.lua, line 228, at function GiveMinorCivAllianceRewards()
for k,v in pairs(GetRewardsFromMinorCivs(majorCivID, true)) do
local city = majorCiv:GetCityByID(v.ID)
logger:debug(city:GetName()..": "..city:GetFood().." +"..v.food)
But v has no ID field, v.ID gets a nil value,
for unknown reason GetCityByID(nil) returns the Civ's first city.
After I changed to GetCityByID(k), tuner print info become
\Balabala...\Unofficial Patch\UP - Event Registration: INFO GiveMinorCivAllianceRewards()
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Delhi: 67 +8.512
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Vijayanagara: 37 +3.2
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Mumbai: 65 +3.2
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Pataliputra: 24 +3.2
\Balabala...\Unofficial Patch\UP - Event Registration: DEBUG Delhi: 76 +16
The for loop gives one extra food(bold),
By print k, I found its come from the "Total" table,
in UP_General.lua, line 373, at function GetTotalRewardsFromMinorCivs().
MapModData.TBM.MinorCivRewards[majorCivID].Total = {}
Maybe check k ~= "Total" in function GiveMinorCivAllianceRewards() will help.
(Why GetCityByID("Total") will return the Civ's first city, without any error msg...

)