Fatal error and use of undefined constant in child theme unless I redefine it

The important thing that needs to be understood here is that child themes are loaded before the parent parent theme. So if you try to use a function, variable, or constant that’s defined in the parent theme in your child theme then it will result in errors, unless you use them inside a hooked function that runs after the parent theme has loaded.

I don’t know why your parent theme would be defining the child theme directory itself, you would need to ask its author, but my advice would just be to not rely on its definitions in your child theme. If you want to get path to a file in your child theme, then use get_theme_file_path(), rather than this constant, like this:

require_once get_theme_file_path( 'inc/init-child.php' );

Or this:

load_child_theme_textdomain( 'page-builder-framework-child', get_theme_file_path( 'languages' ) );