Прочитайте про указатели. Когда у меня только появился компьютер, я хотел поделиться игрой с другом и скопировал на дискету ярлычок с рабочего стола. Разумеется, эта идея была обречена на провал. Ваш код пытается сделать примерно то же самое. В бинарном представлении класса data есть одно поле float N которое успешно записывается в файл, и второе float *ti, которое является всего лишь адресом. После того как вы считываете данные из файла, он указывает на какое-то место в памяти где может быть что угодно, но не тот массив, который вы ожидаете увидеть.
А исправить можно например
так. Данные для наглядности пишем в текстовый файл.