"с двенадцати минут (девятого) до примерно половины девятого"
good. "девятого" can be omitted.
"с восьми двенадцати до примерно половины девятого"
it's ok. a little bit worse, but a very little bit.
direct numering of minutes: "8:12=восемь-двенадцать", "8:30=восемь-тридцать", "8:49=восемь-сорок девять" sometimes called "military" ("по военному", "по армейски"). no need to think, just say/listen numbers and follow orders.
"Citizen way" is "12 минут девятого", "пол-восьмого", "без одиннадцати минут девять".