Ничего не сломано. CopyRates отдаёт то, что терминал уже подгрузил, а подгружает он историю не всю и не сразу. Если перед выгрузкой не запросить историю заранее, начало года может быть ещё не загружено, и функция вернёт меньше баров без всякой ошибки. Проверяй, сколько вернулось, сравнивай с ожидаемым и, если мало, подожди и запроси ещё раз. Ещё режет настройка максимального числа баров в окне.
Последний бар отличается, потому что он не закрыт, а выгружала ты в разное время. Я его всегда отрезаю.
И одно правило, которое мне сэкономило много нервов: время в любой выгрузке из терминала серверное и без пояса. Сразу пиши рядом в отдельный файл, какой пояс у сервера был на дату выгрузки, иначе через год, когда будешь сравнивать с другими данными, не вспомнишь.