singleTop - подразумевает, что при переходе из C в B:
private void startGameActivity(boolean guessResult, boolean isGuesses) {
Intent gameIntent = new Intent(activity, GameActivity.class);
putCurrentFlags(gameIntent, guessResult, isGuesses);
startActivity(gameIntent);
}
ловить возврат нужно в onNewIntent. то есть не получиться просто в onSaveInstance сохранить данный параметр. Вообще, если C всегда child по отношению к B то лучше или стартовать onActivityResult или возвращаться через finish() или Navigation.Up. или вообще сделать C - диалогом от B