So, conclusion, just in case someone is in the same situation:
It was a program problem. It still is, but I found a way out.
SRAM, as far as I understood was being corrupted, making the arduino behave strange and random.
Using the comand: asm volatile (" jmp 0"); after the last action performed by the program, helped a lot.
It "clears" all the volatiles and the system runs smooth with no problems at all.
Might be a dirty way to do the thing speak forever with no interruptions, but the fact is that it works like a charm.