$TBA Getting Translated to $0 (Custom Fields)

The problem is that you’re trying to perform a math operation on a string (‘TBA’) so the result is going to be 0. Try testing if the value is numeric by using the php function is_numeric(). You can see the docs for that function here.

So in your code do this:

if (is_numeric($price)) {

    ...format the number

} else {

   echo 'TBA';

}