Note that you need to use RecordPrefabInstancePropertyModifications() when editing properties directly instead of using SerializedProperty. Check the docs for for an example:
https://docs.unity3d.com/ScriptReference/PrefabUtility.RecordPrefabInstancePropertyModifications.html
[CustomEditor(typeof(NewBehaviourScript))]
public class NewBehaviourScriptEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if (GUILayout.Button("Change Data"))
{
var target = (NewBehaviourScript)this.target;
Undo.RecordObject(target, "Change Data");
target.data = new float[] { 0, 1, 2, 3, 4, 9999, 5, 6, 7, 8, 9 };
PrefabUtility.RecordPrefabInstancePropertyModifications(target); // <--- you need this
}
}
}