Do you mind sharing the updated code? I don't know why this solution wouldn't work off the top of my head.
Actually now that i take a step away from the PC, i realized what the problem is. You're performing both conditions at the same time. So your second condition would be something along these lines:
if (currentKeyboardState.IsKeyUp(Keys.Down) && previousKeyboardState.IsKeyDown(Keys.Down) && creditsButton.active = true)
since you don't want the exit button to be the "next in line" to be highlighted until the button above that is already selected.
Hope that works!