I've noticed that despite saying the "crafting rate" is affected by quality, the rate at which things are upcycled is hindered by some kind of wait logic. Force-affecting the upcycler with increased rate from beacons that increase its crafting speed just make the animation run faster, but still they seem to be stuck waiting for nothing while they upcycle. Upon further investigation, it seems these stats are just coming from the duplicated Recycler entity, which does have its crafting speed affected by quality.
I currently have it configured to consume 2 items for each level. So, Box -> Inserter -> Upcycler -> Upcycler -> Upcycler -> Upcycler -> Box. The upcyclers are always stuck at 99% waiting for this circuit condition and just sit there. I tried messing with the code to remove this wait condition, but it just spits out an erroneous item if done between the wait cycles called always_draw_animation = true with the quality symbol as its icon, which is why I'm assuming you did this wait in the first place.