What you need is long to explain and there may be many reasons that prevent the update of the EPG on the tvheadend server. Open the address of tvheadend in a browser and type http://<tvheadend-server-ip>:9981 and study the options that refer to EPG. Without disregarding other alternatives my suggestion is:
- Use 'Internal Grabbers' exclusively and forget about 'OTA Grabbers' because they interfere with watching TV.
- Enable 'Force initial EPG grab at start-up' for 'Internal Grabbers'.
- My 'Cron multi-line' for 'Internal Grabbers' setting is "0 */6 * * *" and it causes the EPG to be updated every six hours.
In summary, study a bit the operation of the tvheadend server.