You can store in a variable the times that block was placed and remove 1 from that variable when that same block is broken... like this:
on place of chest:
if {limit-chest::%player's uuid%} + 1 > 10:
cancel event
send "&cLimit reached for this block. &7(%{limit-chest::%player's uuid%}%/10)" to player
stop
add 1 to {limit-chest::%player's uuid%}
send "&aBlock placed. &7(%{limit-chest::%player's uuid%}%/10)" to player
on break of chest:
remove 1 from {limit-chest::%player's uuid%}