Hongyi,
There may not be a simple yes or no answer to your question.
Historically, the idea of allowing negative variance estimates descends from LISREL and the idea of constraining the estimates to be non-negative descends from EQS. The criticism that the constraints might hide sources of misspecification or cause biases in estimates of other parameters largely pushed the field in the direction of allowing for negative estimates.
The exception is where a negative variance could be due to sampling error. In that case, it seems harmless to fix it to zero or a small positive value. This results in a two-step process, first evaluating the plausibility of sampling error before fixing the variance to zero or a small positive value. If you find zero theoretically implausible, you may prefer a small positive value. Of course, you can always do a sensitivity analysis to see how this impacts your other estimates.
It seems to me that your priority should be to track down and evaluate the other negative estimates. If some or all are resulting from an important source of misspecification, then you want to address that first, and then worry about negative estimates due to sampling error second.
Keith