Problema risolto leggendo la !
In pratica il metodo "getTextSize()" restituisce la dimensione in pixel, mentre il metodo "setTextSize(float)" prende una dimensione in "scale point", che è un'unità di misura diversa. Per risolvere il problema puoi usare il metodo "setTextSize(int, float)", in cui il primo parametro prende è un intero che indica l'unità di misura del secondo parametro.
Tradotto in codice:
tp.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				float size = tv.getTextSize();
				tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, size+1); // indico che la dimensione è in pixel
			}
		});
		
		tm.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				float size = tv.getTextSize();
				tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, size-1); // indico che la dimensione è in pixel
			}
		});