SQLite can be finicky because there is really only 1 connection so each thing that accesses the db must wait for its turn with the connection. If something is taking a long time it can cause problems.
One problem that can occur if you populate the db on your local machine and then move it to a different machine is if there are unprocessed rows in the mp_IndexingQueue table (which is used to process changes in the search index) it can cause errors on the new location because we store the file system path for the index (like c:\somepath) in the table so it knows where to write the index files. It can have existing rows with an incorrect path that was correct on your local machine but does not exist on the server so when it tries to write to that non existing folder errors occur.
You might see clues of this kind of problem in the mojoportal log or in the event viewer on the server.
You can connect to the db using the command prompt and
sqlite3.exe dbfilename
Then you can delete existing rows from mp_IndexingQueue and mp_TaskQueue to clear up ths problem if it is the problem.
Hope it helps,
Joe