(They're not depreciated in Free Pascal, only in Delphi. Free Pascal aims to be compatible with many different Pascal Dialects so you won't be seeing anything disappear like in the proprietary Delphi)

Classes are the more common in the OOP world however Objects can be used in an almost identical manner. They are more like records in that you don't have to have a mandatory constructor or destructor and don't have to call a constructor in order to use the Object. In fact, think of them as Records that support inheritence (certain dialects allow records to have functions and procedures too)

This is because an Objects memory is allocated upon it's decleration in the same way variables are. A Class needs to be created on the heap seperatley. This means that objects are lost when they go out of scope but classes are persistant, requiring that you implicitly call a destructor of a class instance if you want to free up the memory.

Classes are better in this way because it allows a lot more flexiblity in your code, A class does not need any form of Global decleration in order to be used across your program.

Because Objects are not commonly used (and are more for supporting old code) perhaps there are bugs (You should submit your problem to the FreePascal bug tracker!)

Start using classes and if you're still having the same problem then you need to eliminate more factors.