Il senso era che il ciclo foreach esamina un insieme che viene variato durante il ciclo stesso, eliminando gli elementi interni. E' necessario invece eliminare partendo dagli ultimi elementi per conservare l'insieme comunque coerente.

Per l'inserimento no, non dovresti avere problemi ... ma è tutta un'altra storia eventualmente da raccontare in un altro thread.