Hola, si no me equivoco, el problema que tienes e sque borra lo que esta escrito antes no? para solucionar eso prueba esto:
$('#publicacion').html( $('#publicacion').html()+'[b][/b]')
y tambien te recomiendo separar el codigo jquery ya que no es una buena costumbre usar los eventos onclick etc...
$(document).ready(function(){
$('.negrita').click(function(){
$('#publicacion').html( $('#publicacion').html()+'[b][/b]')
});
$('.cursiva').click(function(){
$('#publicacion').html( $('#publicacion').html()+'[i][/i]')
});
})
Para que el codigo anterior te funcione tendras que añadir las clases a los IMG y retirar los ONCLICK .
Saludos