Query entries by custom date field (for a particular year)
I think your problem is you're converting the date to a year string then converting that to an atom value. Just convert the date straight to an atom value:

{% set yearStart = "#{year}-01-01"|atom %}
{% set yearEnd = "#{year}-12-31"|atom %}

{% set entries = craft.entries({
    section: "programme",
    isOngoing: 0,
    startDate: ["and", "&gt;= #{yearStart}", "&lt; #{yearEnd}"]
}).all %}