Вопрос решился после ночи раздумий. Дело в том, что я отрисовывал каждое облако по отдельности, и соответственно удалял каждое облако отдельно, тем самым получалось, что очищенная область часто очищала и остальные облака.
Решил отрисовывать все облака одновременно одной функцией, и очищение стало работать как надо. Спасибо.