2.Maybe using Rojos canvas plug you can do something mystical and solve this, other then that i'm not to sure how to achieve this (also i'm to lazy to think of anyway to accomplsh this lol)
3.For momentum all you really have to do is store a value for player speed (velocity if your going in different directions) times the mass, when the player collides with a portal. Then add another value such as the "fall distance" to the stored value and a physics impulse when the player exits the portal.
So lets say you jumped off a cliff and landed on a portal, well I guess as the player is falling down, a global variable called "fall" would add 1 to itself until the player hits the portal. Then when the player collides with the portal, the variable stops adding 1. A physics impulse is then placed on the portal after the player changes to the new portal position, assuming we use one of newtons law then the force applied to the player plus the fall down variable, we should get some kind of force acting on the player and pushing it a bit higher depending on the impulse plus the momentum gained when falling.
It is kinda tough but definetly not impossible