Hmm. There's still wiggle room in what you're describing. I can see you describing two different scenarios, and they need very different solutions.
Scenario 1
Bunkai: You want to roll Xd10, designate whether they explode on a 9 or a 10, and designate whether a success should count as anything over a 6 or anything over a 5. You want your successes to be color coded to quickly show up as successes when you look at the roll-tip. Lastly, the explosion threshold (either 9 or 10) and success threshold (either 5 or 6) will remain the same for all dice thrown.
You can achieve this one with something similar to what I posted, above, just changing the success threshold out to be something other than the explosion threshold:
[[?{Dice|10}d10!>?{Explosion Threshold|10}>?{Success Threshold|6}cs>?{Success Threshold}]]
That one would allow 1s to reduce your number of successes, though... so a roll of 8, 1, 4, 8, 7 would show as 3 successes rather than 4. If you need to stop the 1s from chipping away at your successes, you can do:
[[?{Dice|10}d10!>?{Explosion Threshold|10}>?{Success Threshold|6}cs>?{Success Threshold}cf=0]]
Scenario 2
Bunkai: You want to roll Xd10 under conditions where the first round of explosion could happen at 9 or 10, and after that further explosions might occur at a 9 or 10. Similarly, the first round of successes might count as a 5 or greater OR they might be at a 6 or greater, but further explosions might have a different threshold for success.
If this is what you're looking for, the explosion threshold can't change between cycles of Roll20 throwing dice. That is, it can't be 10 for the first pass, but then 9 for the second pass. However, with the help of some metascripts, you can make that happen. This solution uses ZeroFrame and Plugger. If you needed to pull from the selected token the base number of dice to roll, you might also need SelectManager.
!&{template:default}{{name=Roll Example}}{{Base Roll=[[?{Dice|10}d10!>?{Explosion Threshold|10}>?{Success Threshold|6}cs>?{Success Threshold}]]}}{{Final Adjusted=[\][\]$[[0]].value [Base Roll] + {&eval} getDiceByVal($[[0]] >=?{Explosion Threshold} all count){&/eval}d10!>?{Secondary Explosion Threshold|10}>?{Secondary Success Threshold|6}cs>?{Secondary Success Threshold}\]\] }}{&simple}
Or, with the line breaks included for readability:
!
&{template:default}
{{name=Roll Example}}
{{Base Roll=[[?{Dice|10}d10!>?{Explosion Threshold|10}>?{Success Threshold|6}cs>?{Success Threshold}]]}}
{{Final Adjusted=[\][\]$[[0]].value [Base Roll] + {&eval} getDiceByVal($[[0]] >=?{Explosion Threshold} all count){&/eval}d10!>?{Secondary Explosion Threshold|10}>?{Secondary Success Threshold|6}cs>?{Secondary Success Threshold}\]\] }}
{&simple}
I put it in a roll template just to show the difference in the roll. Here is the output with the base roll's roll-tip expanded. This shows just the first values:

Now, the same output, with the second roll expanded:

You can see that in the base roll, the 9 did not explode, but both 10s did. In the final roll, the 9 did explode and the 5 did count as a success, because for this roll I instructed it to explode on 9s and count anything at or over 5 as a success.