CALs are stored in the CalData.pgo file. CALs are cleared when the .pgo file loses contact with and cannot communicate with QVS. The .pgo files must be "highly available," with the timeout value of 300 ms. If QVS cannot communicate with the .pgo files, QVS will create new .pgo files to continue to function. Typically, the cause for communication interruption is a file lock placed on the .pgo files by another application such as anti-virus software (or any real-time, system scanning software). So you want to ensure that you explicitly exclude the %ProgramData%\QlikTech & ProgramFiles%\QlikView directories, as well as the QlikView filetypes - .qvw, .qvd, .pgo, .shared, .meta - from any scanning applications. Also, you want to ensure that the .pgo files are stored in a location which is highly available - i.e. NAS storage is not supported. To help mitigate the issue, suggest that you make backups of the .pgo files after completing all CAL assignments so that you can restore them if you experience the issue in the future.
Hope this helps