If you were using a percentage based display, it would make a difference, but with a virtual resolution, it should not make a difference.
We could help more if we could see your code, or at least some example code that shows the problem.
Here is some code that shows the ByOffset working correctly...
SetVirtualResolution(800, 600)
SetClearColor(125, 125, 125)
backSpr = CreateSprite(0)
SetSpriteSize(backSpr, 400, 300)
SetSpriteColor(backSpr, 100, 100, 100, 255)
SetSpriteDepth(backSpr, 20)
backSpr = CloneSprite(backSpr)
SetSpritePosition(backSpr, 400, 300)
text1 = CreateText("no offset, sprite x:200, y:150")
SetTextSize(text1, 15)
SetTextAlignment(text1, 1)
SetTextPosition(text1, 200, 20)
sprite1 = CreateSprite(0)
SetSpriteSize(sprite1, 150, 150)
SetSpritePosition(sprite1, 200, 150)
text2 = CreateText("75/75 offset, x:600, y:150")
SetTextSize(text2, 15)
SetTextAlignment(text2, 1)
SetTextPosition(text2, 600, 20)
sprite2 = CloneSprite(sprite1)
SetSpriteOffset(sprite2, 75, 75)
SetSpritePosition(sprite2, 600, 150)
text3 = CreateText("75/75 offset, x:200, y:450 BY OFFSET")
SetTextSize(text3, 15)
SetTextAlignment(text3, 1)
SetTextPosition(text3, 200, 320)
sprite3 = CloneSprite(sprite1)
SetSpriteOffset(sprite3, 75, 75)
SetSpritePositionByOffset(sprite3, 200, 450)
do
Sync()
loop