Display error message when validating form in a specified region or div
If you use the form_set_error function instead of drupal_set_message, then the error message will be displayed within the form, which would mean that it would display inside your block.

If you would like to retain the drupal_set_message behaviour for your main form page then you would either need to differentiate which method is called in the validation based on url (or Context), or provide two separate forms so that you can simply validate each separately. In this instance you could build form and validate using a shared function to avoid duplication.