Как однозначно конвертировать цвет из RGB в HSL и обратно, получая один и тот же результат?
цветовые пространства RGB и HSL не совпадают, поэтому несоответствия неизбежны.

Например, полностью черному rgb(0, 0, 0) соответствует множество hsl(*, *, 0).

Хотя например, в этой работе предлагают точный целочисленный метод конвертации: Integer-based accurate conversion between RGB and ... (на англ.).  Один из авторов — Владимир Чернов, выпускник Петербургского Политехнического университета.
Вообще, преобразования можно сделать обратимыми. Математические формулы однозначны.

Похоже там тупо где-то стоит округление вниз, ведь разница после преобразований по всем каналам - ровно 1. Может, это значение RGB в HSL на самом деле что-то вроде (15.01, 30.5, 49.9). Но в пиксели HSL в итоге запишутся целые числа (0-255). Из-за этого округления при обратном преобразовании получается не 0x91 а 0x90.6, что, опять же, округляется вниз.

Если так важна полная обратимость преобразований, попробуйте использовать 10-битные или 16-битные форматы пикселей (расширяя исходный 8-битный RGB нулями справа). Тогда эти округления не испортят важные вам 8 старших бит.