Q:

Facebook doesn't fire refresh event and Tampermonkey won't work?

So the problem is that script is working until I log in into facebook, then to fire the script I would have to refresh whole site manually. 
// ==UserScript==
// @name Open Test
// @version 1.0
// @description Test
// @include     http://facebook.com/*
// @include     http://*.facebook.com/*
// @include     https://facebook.com/*
// @include     https://*.facebook.com/*
// @include     http://facebook.com/*/*
// @include     http://*.facebook.com/*/*
// @include     https://facebook.com/*/*
// @include     https://*.facebook.com/*/*
// @include     http://facebook.com/*/*/*
// @include     http://*.facebook.com/*/*/*
// @include     https://facebook.com/*/*/*
// @include     https://*.facebook.com/*/*/*
// @require http://code.jquery.com/jquery-latest.js
// ==/UserScript==

alert('Hello world!');

A:

I don't know why @include is not working since it seems that some of them must match facebook login page, anyway you can try to use @match instead to keep the things clear since some of your @includes are doing the same, for example your are adding:
// @include     https://facebook.com/*
// @include     https://facebook.com/*/*
// @include     https://facebook.com/*/*/*

But with the first one is enough // @include     https://facebook.com/* since it already matches for example https://facebook.com/example/path/other.
So as I said to keep things clear you can try with @match as follows:
// ==UserScript==
// @name Open Test
// @version 1.0
// @description Test
// @match *://www.facebook.com/*
// @require http://code.jquery.com/jquery-latest.js
// ==/UserScript==

alert('Hello world!');

In this case @match *://www.facebook.com/*: 
  Match any URL with both schemes (http and https) in www.facebook.com.

Basically the difference between @includes and @match is that @includes allows regex, but in your case seems that this is not needed. 
Here you can see more info on how @match works.

