Tu sintaxis no es del todo correcta.
En primer lugar, no es necesario "decir" nada. Deja el "decir" y el "terminar de decir" desactivados. Las fechas no son específicas de ninguna aplicación en particular, así que no necesitas "decir". Este puede ser todo el problema.
Segundo, si haces algo así:
set a to current date
Obtendrás un resultado como este (no exactamente así, porque es particular a tus preferencias de fecha y hora):
fecha "martes 12 de abril de 2016 a las 10:39:44"
Ese es el "resultado" de la línea script anterior. Fíjate en las comas.
Tu script donde pones "b" no incluye comas y ahí puede estar el error. Creo que si ejecutas un script de una línea como el que mostré arriba verás la sintaxis adecuada. Una vez que la veas, puedes cambiar tu cadena en la línea donde pones b para que coincida con la sintaxis que el sistema espera. Si está usando la sintaxis correcta (es decir, que coincide con lo que obtiene cuando pide la fecha actual) entonces su problema es exclusivamente que ha envuelto sus comandos de fecha en el bloque "tell", y la aplicación a la que se lo está "diciendo" no entiende cómo hacerlo. Deja la envoltura "tell" fuera. Haz tus cosas de fecha fuera de eso. Tu fecha "b" seguirá funcionando más tarde en tu script, en un bloque tell. Pero tienes que hacer tu trabajo de fecha fuera de un bloque tell.