getting rid of delay(), fading LEDs

I hope this makes sense. I am just going through your code and making comments as they occur to me ...

Using variables called "led_A_State" to record the value of the LED brightness (as I think you are doing) will work but it confuses the concept of "state" which is usually just yes or no. I suggest calling the variable "led_A_brightness".

Why have you "time = millis()" when currentMillis already has a reasonably up to date value?

You may get strange results for value2 because you seem to be trying to do floating point maths on integers. Try to avoid floating point maths if you can. Perhaps use large integers - i.e. long or unsigned long.

Edit to add ...
Also, I don't think you can use the value of time in the way you are trying to get value2. millis() is a number that keeps growing while the Arduino is running. It eventually gets to about 4 billion (2^32) and then goes back to zero and starts counting again. 4 billion millisecs is a lot of days.
... end of edit

I can't follow what I think is your code to fade up (and down?) the LED. You are only increasing the brightness if the LED is at 0. Then, when it is no longer zero you are putting it straight back to zero. I suspect the problem might be more obvious if you called it ledBrightness as I suggested earlier. Also, work through that little piece of code with a pencil and paper and you will probably see what is needed.

...R