Unfortunately, there has been a misunderstanding on how the OFPEC tag should be used. You only ever need, and in fact should always use, the tag for global variables. For local variables, the tag is redundant and does not act as a replacement for correct use of private (using the tag in a local does not prevent overwriting local variables in an outer scope!). Private has been used for _DCV_ret correctly, but not for all other local variables; private is required for all local variables, not just the value you will return. Here is a simplified (and safe) version:
private ["_number", "_digits"];
_number = toArray str floor _this;
_digits = [];
{
_digits set [count _digits, _x - 48];
} forEach _number;
_digits;