Why does Lasso behave "erratically" when the number of features is greater than the number of training instances?
When p > n, the LASSO model can only sustain up to n variables (this can be proven using linear algebra, the rank of the data matrix in particular), leaving at least p - n variables out (some that might be predictive, consider a model where you use LASSO and all your variables are predictive). This is not necessairly a bad thing though, depending on your use case. 

For the colinearity problem, if two variables are highly correlated (that is, they contain the same "information" in some sense) then LASSO will tend to pick one of the two randomly and drop the other one. Again, might not be an issue but can lead to "erratic" behavior in which the variables selected change quite a bit depending on the training set.

In general, I find LASSO to choose different sets of variables that change quite a bit depending on the training set, especially for small datasets and even worse when p > n. Again, not necessarily a problem but you might look to not using explicit feature selection and instead opting for ridge regression. Alternatively, the elastic net is a balance between the two methods.