NullReferenceException: Object reference not set to an instance of an object
  at Oxide.Plugins.RemoverTool.GetRefund (BaseEntity TargetEntity) [0x000a0] in <96e97dd5dbe74bdfbc8dae5de180fe13>:0 
  at Oxide.Plugins.RemoverTool.GUIRefundUpdate (BasePlayer player, System.Boolean useRefund, BaseEntity TargetEntity) [0x00027] in <96e97dd5dbe74bdfbc8dae5de180fe13>:0 
  at Oxide.Plugins.RemoverTool+ToolRemover.RemoveUpdate () [0x000da] in <96e97dd5dbe74bdfbc8dae5de180fe13>:0 

I was battling this random NRE when removing buildingblocks for a long time and finally tracked it down. Somehow buildingblock.blockDefinition can be null sometimes. Here is a snippet of my fix:

        Dictionary<string, object> GetRefund(BaseEntity TargetEntity)
        {
            var refund = new Dictionary<string, object>();
			var buildingblock = TargetEntity.GetComponent<BuildingBlock>();
            if (buildingblock != null)
            {
                var grade = buildingblock.grade.ToString();
                if (Refund.ContainsKey(grade))
                {
                    if (Refund[grade] is Dictionary<string, object>)
                        refund = Refund[grade] as Dictionary<string, object>;
                    else if (Refund[grade] is int)
                    {
                        var p = (int)Refund[grade] / 100f;
                        var @enum = buildingblock.grade;
						if (buildingblock.blockDefinition != null) //added
						{
							var c = buildingblock.blockDefinition.grades[(int)@enum];
							foreach (var ia in c.costToBuild)
							{
								var a = ia.amount * p;
								if (Mathf.Floor(a) < 1) continue;
								refund.Add(ia.itemDef.displayName.english.ToLower(), (int)a);
							}
						}
                    }
                }
            }