I decided to turn my comment into an answer and add some references, etc.
It is a very common phenomenon in related (but, nonetheless, different !) languages. A common language splits into branches and a word starts evolving in different directions. Over the centuries the meanings of the word in those 'branches' (which gradually develop into fully-fledged languages) may drift very far from both the original meaning and each other.
(Note: this is in no way an inconsistency)
Wiktionary gives the following etymology for "чёрствый":
Происходит от праслав. *čьrstvъ, от кот. в числе прочего произошли:
др.-русск. чьрствъ «твердый; сухой, черствый; безупречный; ясный;
значительный», укр. черстви́й «черствый, сильный, свежий», болг.
чевръ́ст, чвръст «жесткий, крепкий, ловкий, бодрый», сербохорв.
чвр̑ст, чвр́ста «крепкий, жесткий, полный, мясистый», словенск.
čŕstǝv, čvrst «крепкий, ядреный, бодрый, свежий», чешск., словацк.
čerstvý «свежий, бодрый», польск. czerstwy «свежий, бодрый, крепкий,
черствый» (из *czarstwy, вероятно, под влиянием czerstwieć), в.-луж.
čerstwy «бодрый».
Праслав. *čьrstvъ неоднократно сравнивали с др.-инд.
kr̥tsnás «полный, окончательный» и лат. crassus «толстый, грубый». Это
сближение весьма недостоверно ввиду того факта, что лат. crassus
расценивается как экспрессивное образование, связь которого с лат.
crātis «плетение», готск. haúrds «дверь» и т. д. весьма сомнительна.
Более удачно сравнение с готск. hardus «жесткий, твердый», греч.
κρατύς «сильный», κρατερός «более сильный», κράτος «сила». Сравнивают
čьrstvъ и с др.-исл. herstr «резкий», лит. ker̃štas «гнев».
Использованы данные словаря М. Фасмера.
Ю.В.Откупщиков covers this phenomenon in Chapters 6 ("Развитие значений слова") and 7 ("Семантические закономерности") of one of his excellent books К истокам слова. Рассказы о науке этимологии (I highly recommend this book to all interested in etymology (as a branch of linguistics) and the comparative method specifically. It is meant for children mostly but is an interesting read for anyone and can be seen as "Etymology for Dummies", if you like):
О свежем и чёрством хлебе
Как-то раз один чешский студент, учившийся в Москве и не очень хорошо
знавший русский язык, зашёл в булочную купить хлеба. Продавщица
любезно предупредила его, что хлеб, который он выбрал себе; —
чёрствый. Студент-чех поблагодарил продавщицу и сказал, что это как
раз то, что ему нужно. Но увы — оказалось, что покупатель и продавщица
не поняли друг друга. Дело в том, что чешское čerstvỷ chlẻb [чéрствы:
хле: б] означает совсем не черствый, а, наоборот, ‘свежий хлеб’.
Такие недоразумения особенно часто встречаются в близкородственных
языках.
Например, сербское слово зной значит ‘пот’, куча — ‘дом’, и́грати — ‘танцевать’, слово — ‘буква’, ки́снути — ‘мокнуть’, любити — ‘целовать’;
болгарское стая имеет значение ‘комната’, гора — ‘лес’, дума—‘слово’, неделя — ‘воскресенье’, стол — ‘стул’ и т. п.
Сербское слово домовина означает ‘родина’, а украинское домовина — ‘гроб’.
…
Unfortunately, the author does not go into the detailed analysis of this particular transformation (čerstvỷ/чёрствый). However, he gives another similar example later on that outlines the idea:
Как стая стала ‘комнатой’
Почему же слова, несомненно восходящие к одному и тому же общему
источнику, приобретают иногда даже в близкородственных языках
совершенно различное значение? Как это происходит?
Возьмём в качестве примера русское слово стая и болгарское стая
‘комната’. В древнерусском языке и в диалектах современного русского
языка словом стая обозначалось ‘стойло, хлев’. Этимология этого слова
достаточно прозрачна: стая представляет собой место, где стоит скот.
Позднéе значение слова стая развивалось в двух различных направлениях:
1) ‘стойло’ → ‘стоянка скота’ → ‘стадо (домашних животных)’ → ‘стая’
(русский язык); 2) ‘стойло’ → ‘сарай’ → ‘помещение’ → ‘комната’
(болгарский язык).
Подобного же рода семантические изменения произошли и в других
приведённых выше случаях. Но подробный их разбор занял бы слишком
много места и времени.
…
Таких примеров можно привести немало из самых различных языков. Пути
развития противоположных значений в слове не всегда одинаковы. И не во
всех случаях эти пути могут быть прослежены с достаточной
определённостью.
Сравнительно простой в этом отношении пример — развитие значений у
слова бесценный. Если предмет не имеет никакой ценности, если он
слишком дёшев для того, чтобы за него можно было назначить хоть
какую-то цену, его называли бесценным, то есть дешёвым. Это значение в
современном русском языке является устаревшим, но оно сохранилось,
например, в выражении купить за бесценок. Чешское слово bezcenny
[бэ:сцены:] также означает ‘ничего не стоящий’ и (в переносном смысле)
— ‘ничтожный’. В настоящее время мы обычно употребляем слово бесценный
в прямо противоположном значении: ‘дорогой’. Такое употребление слова
довольно легко объяснимо. Речь в данном случае идёт о столь дорогом
предмете, который мы не согласны уступить ни за какую цену, о
предмете, которому и цены нет. Так возникло у слова бесценный его
второе значение, ставшее основным в современном русском языке.
Basically, the whole chapter 6 is dedicated to this phenomenon, while chapter 7 is the continuation on this topic.
Another link to the same book with arguably better formatting, images, and, I believe, slightly different content (the original edition?). This link is provided by 'Общее языкознание'.
For the fun of it (there is some new "food for thought" there as well, though.)