How to build a block on form submission?
I will encourage you to look at bean contributed module. Using this you can create block types whose instances can be created using bean_create function.

Example snippet:

$values = array(
  'delta' =&gt; 'test_bean',
  'label' =&gt; t('Test Bean'),
  'title' =&gt; t('Test Bean'),
  'type' =&gt; some_block_type_that_you_will_create_through_UI,
  'view_mode' =&gt; 'default',
  'data' =&gt; array(
    'test_boolean' =&gt; FALSE,
    'test_string' =&gt; t('New String'),
    'test_array' =&gt; array(
      'test_array_1' =&gt; 'new_value',
    ),
  ),
);

$bean = bean_create($values);


The bean content (block) can then be placed around the site just like any other block.